diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/arm/kernel/irq.c linux-2.6.18.3-vs2.1.1.2.3/arch/arm/kernel/irq.c --- linux-2.6.18.3-vs2.1.1.2/arch/arm/kernel/irq.c 2006-11-19 19:52:27 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/arm/kernel/irq.c 2006-11-26 20:12:33 +0100 @@ -37,7 +37,6 @@ #include #include #include -#include #include #include @@ -113,7 +112,6 @@ static struct irq_desc bad_irq_desc = { asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs) { struct irqdesc *desc = irq_desc + irq; - struct vx_info_save vxis; /* * Some hardware gives randomly wrong interrupts. Rather @@ -123,12 +121,10 @@ asmlinkage void asm_do_IRQ(unsigned int desc = &bad_irq_desc; irq_enter(); - __enter_vx_admin(&vxis); desc_handle_irq(irq, desc, regs); /* AT91 specific workaround */ irq_finish(irq); - __leave_vx_admin(&vxis); irq_exit(); } diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/arm26/kernel/irq.c linux-2.6.18.3-vs2.1.1.2.3/arch/arm26/kernel/irq.c --- linux-2.6.18.3-vs2.1.1.2/arch/arm26/kernel/irq.c 2006-11-21 02:43:52 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/arm26/kernel/irq.c 2006-11-26 20:12:25 +0100 @@ -31,7 +31,6 @@ #include #include #include -#include #include #include @@ -332,7 +331,6 @@ do_level_IRQ(unsigned int irq, struct ir asmlinkage void asm_do_IRQ(int irq, struct pt_regs *regs) { struct irqdesc *desc = irq_desc + irq; - struct vx_info_save vxis; /* * Some hardware gives randomly wrong interrupts. Rather @@ -343,9 +341,7 @@ asmlinkage void asm_do_IRQ(int irq, stru irq_enter(); spin_lock(&irq_controller_lock); - __enter_vx_admin(&vxis); desc->handle(irq, desc, regs); - __leave_vx_admin(&vxis); spin_unlock(&irq_controller_lock); irq_exit(); } diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/frv/kernel/irq.c linux-2.6.18.3-vs2.1.1.2.3/arch/frv/kernel/irq.c --- linux-2.6.18.3-vs2.1.1.2/arch/frv/kernel/irq.c 2006-10-13 20:52:40 +0200 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/frv/kernel/irq.c 2006-11-26 20:12:56 +0100 @@ -32,7 +32,6 @@ #include #include #include -#include #include #include @@ -283,7 +282,6 @@ EXPORT_SYMBOL(enable_irq); asmlinkage void do_IRQ(void) { struct irq_source *source; - struct vx_info_save vxis; int level, cpu; irq_enter(); @@ -300,10 +298,8 @@ asmlinkage void do_IRQ(void) kstat_this_cpu.irqs[level]++; - __enter_vx_admin(&vxis); for (source = frv_irq_levels[level].sources; source; source = source->next) source->doirq(source); - __leave_vx_admin(&vxis); __clr_MASK(level); diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/h8300/kernel/ints.c linux-2.6.18.3-vs2.1.1.2.3/arch/h8300/kernel/ints.c --- linux-2.6.18.3-vs2.1.1.2/arch/h8300/kernel/ints.c 2006-11-19 19:52:27 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/h8300/kernel/ints.c 2006-11-26 20:13:42 +0100 @@ -23,7 +23,6 @@ #include #include #include -#include #include #include @@ -217,10 +216,7 @@ void disable_irq(unsigned int irq) asmlinkage void process_int(int irq, struct pt_regs *fp) { - struct vx_info_save vxis; - irq_enter(); - __enter_vx_admin(&vxis); h8300_clear_isr(irq); if (irq >= NR_TRAPS && irq < NR_IRQS) { if (irq_list[irq]) { @@ -232,7 +228,6 @@ asmlinkage void process_int(int irq, str } else { BUG(); } - __leave_vx_admin(&vxis); irq_exit(); } diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/h8300/platform/h8s/ints.c linux-2.6.18.3-vs2.1.1.2.3/arch/h8300/platform/h8s/ints.c --- linux-2.6.18.3-vs2.1.1.2/arch/h8300/platform/h8s/ints.c 2006-11-19 19:52:27 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/h8300/platform/h8s/ints.c 2006-11-26 20:14:01 +0100 @@ -23,7 +23,6 @@ #include #include #include -#include #include #include @@ -262,12 +261,9 @@ void disable_irq(unsigned int irq) asmlinkage void process_int(unsigned long vec, struct pt_regs *fp) { - struct vx_info_save vxis; - irq_enter(); /* ISR clear */ /* compatible i386 */ - __enter_vx_admin(&vxis); if (vec >= EXT_IRQ0 && vec <= EXT_IRQ15) *(volatile unsigned short *)ISR &= ~(1 << (vec - EXT_IRQ0)); if (vec < NR_IRQS) { @@ -280,7 +276,6 @@ asmlinkage void process_int(unsigned lon } else { BUG(); } - __leave_vx_admin(&vxis); irq_exit(); } diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/i386/kernel/irq.c linux-2.6.18.3-vs2.1.1.2.3/arch/i386/kernel/irq.c --- linux-2.6.18.3-vs2.1.1.2/arch/i386/kernel/irq.c 2006-10-13 20:52:50 +0200 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/i386/kernel/irq.c 2006-11-26 20:14:39 +0100 @@ -18,7 +18,6 @@ #include #include #include -#include DEFINE_PER_CPU(irq_cpustat_t, irq_stat) ____cacheline_internodealigned_in_smp; EXPORT_PER_CPU_SYMBOL(irq_stat); @@ -56,7 +55,6 @@ fastcall unsigned int do_IRQ(struct pt_r { /* high bit used in ret_from_ code */ int irq = ~regs->orig_eax; - struct vx_info_save vxis; #ifdef CONFIG_4KSTACKS union irq_ctx *curctx, *irqctx; u32 *isp; @@ -83,7 +81,6 @@ fastcall unsigned int do_IRQ(struct pt_r } } #endif - __enter_vx_admin(&vxis); #ifdef CONFIG_4KSTACKS curctx = (union irq_ctx *) current_thread_info(); @@ -122,7 +119,6 @@ fastcall unsigned int do_IRQ(struct pt_r } else #endif __do_IRQ(irq, regs); - __leave_vx_admin(&vxis); irq_exit(); diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/powerpc/kernel/irq.c linux-2.6.18.3-vs2.1.1.2.3/arch/powerpc/kernel/irq.c --- linux-2.6.18.3-vs2.1.1.2/arch/powerpc/kernel/irq.c 2006-11-19 19:52:27 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/powerpc/kernel/irq.c 2006-11-26 20:15:31 +0100 @@ -52,7 +52,6 @@ #include #include #include -#include #include #include @@ -219,9 +218,6 @@ void do_IRQ(struct pt_regs *regs) irq = ppc_md.get_irq(regs); if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) { - struct vx_info_save vxis; - - __enter_vx_admin(&vxis); #ifdef CONFIG_IRQSTACKS /* Switch to the irq stack to handle this */ curtp = current_thread_info(); @@ -240,7 +236,6 @@ void do_IRQ(struct pt_regs *regs) } else #endif generic_handle_irq(irq, regs); - __leave_vx_admin(&vxis); } else if (irq != NO_IRQ_IGNORE) /* That's not SMP safe ... but who cares ? */ ppc_spurious_interrupts++; diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/s390/kernel/s390_ext.c linux-2.6.18.3-vs2.1.1.2.3/arch/s390/kernel/s390_ext.c --- linux-2.6.18.3-vs2.1.1.2/arch/s390/kernel/s390_ext.c 2006-11-19 19:52:27 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/s390/kernel/s390_ext.c 2006-11-26 20:15:40 +0100 @@ -114,7 +114,6 @@ int unregister_early_external_interrupt( void do_extint(struct pt_regs *regs, unsigned short code) { ext_int_info_t *p; - struct vx_info_save vxis; int index; irq_enter(); @@ -127,14 +126,12 @@ void do_extint(struct pt_regs *regs, uns account_ticks(regs); kstat_cpu(smp_processor_id()).irqs[EXTERNAL_INTERRUPT]++; index = ext_hash(code); - __enter_vx_admin(&vxis); for (p = ext_int_hash[index]; p; p = p->next) { if (likely(p->code == code)) { if (likely(p->handler)) p->handler(regs, code); } } - __leave_vx_admin(&vxis); irq_exit(); } diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/sparc/kernel/irq.c linux-2.6.18.3-vs2.1.1.2.3/arch/sparc/kernel/irq.c --- linux-2.6.18.3-vs2.1.1.2/arch/sparc/kernel/irq.c 2006-11-19 19:52:27 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/sparc/kernel/irq.c 2006-11-26 20:18:20 +0100 @@ -29,7 +29,6 @@ #include #include #include -#include #include #include @@ -322,7 +321,6 @@ void handler_irq(int irq, struct pt_regs { struct irqaction * action; int cpu = smp_processor_id(); - struct vx_info_save vxis; #ifdef CONFIG_SMP extern void smp4m_irq_rotate(int cpu); #endif @@ -337,14 +335,12 @@ void handler_irq(int irq, struct pt_regs action = sparc_irq[irq].action; sparc_irq[irq].flags |= SPARC_IRQ_INPROGRESS; kstat_cpu(cpu).irqs[irq]++; - __enter_vx_admin(&vxis); do { if (!action || !action->handler) unexpected_irq(irq, NULL, regs); action->handler(irq, action->dev_id, regs); action = action->next; } while (action); - __leave_vx_admin(&vxis); sparc_irq[irq].flags &= ~SPARC_IRQ_INPROGRESS; enable_pil_irq(irq); irq_exit(); @@ -356,14 +352,11 @@ extern void floppy_interrupt(int irq, vo void sparc_floppy_irq(int irq, void *dev_id, struct pt_regs *regs) { int cpu = smp_processor_id(); - struct vx_info_save vxis; disable_pil_irq(irq); irq_enter(); kstat_cpu(cpu).irqs[irq]++; - __enter_vx_admin(&vxis); floppy_interrupt(irq, dev_id, regs); - __leave_vx_admin(&vxis); irq_exit(); enable_pil_irq(irq); // XXX Eek, it's totally changed with preempt_count() and such diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/arch/sparc/kernel/sun4d_irq.c linux-2.6.18.3-vs2.1.1.2.3/arch/sparc/kernel/sun4d_irq.c --- linux-2.6.18.3-vs2.1.1.2/arch/sparc/kernel/sun4d_irq.c 2006-11-19 19:52:27 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/arch/sparc/kernel/sun4d_irq.c 2006-11-26 20:18:44 +0100 @@ -200,7 +200,6 @@ extern void unexpected_irq(int, void *, void sun4d_handler_irq(int irq, struct pt_regs * regs) { struct irqaction * action; - struct vx_info_save vxis; int cpu = smp_processor_id(); /* SBUS IRQ level (1 - 7) */ int sbusl = pil_to_sbus[irq]; @@ -212,7 +211,6 @@ void sun4d_handler_irq(int irq, struct p irq_enter(); kstat_cpu(cpu).irqs[irq]++; - __enter_vx_admin(&vxis); if (!sbusl) { action = *(irq + irq_action); if (!action) @@ -252,7 +250,6 @@ void sun4d_handler_irq(int irq, struct p } } } - __leave_vx_admin(&vxis); irq_exit(); } diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/drivers/block/loop.c linux-2.6.18.3-vs2.1.1.2.3/drivers/block/loop.c --- linux-2.6.18.3-vs2.1.1.2/drivers/block/loop.c 2006-09-25 15:40:02 +0200 +++ linux-2.6.18.3-vs2.1.1.2.3/drivers/block/loop.c 2006-11-26 20:58:00 +0100 @@ -742,7 +742,6 @@ static int loop_set_fd(struct loop_devic struct file *file, *f; struct inode *inode; struct address_space *mapping; - struct vx_info_save vxis; unsigned lo_blocksize; int lo_flags = 0; int error; @@ -840,9 +839,7 @@ static int loop_set_fd(struct loop_devic set_blocksize(bdev, lo_blocksize); - __enter_vx_admin(&vxis); error = kernel_thread(loop_thread, lo, CLONE_KERNEL); - __leave_vx_admin(&vxis); if (error < 0) goto out_putf; wait_for_completion(&lo->lo_done); diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/drivers/s390/cio/cio.c linux-2.6.18.3-vs2.1.1.2.3/drivers/s390/cio/cio.c --- linux-2.6.18.3-vs2.1.1.2/drivers/s390/cio/cio.c 2006-11-19 19:52:27 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/drivers/s390/cio/cio.c 2006-11-26 20:19:34 +0100 @@ -640,16 +640,13 @@ do_IRQ (struct pt_regs *regs) spin_lock(&sch->lock); /* Store interrupt response block to lowcore. */ if (tsch (tpi_info->schid, irb) == 0 && sch) { - struct vx_info_save vxis; /* Keep subchannel information word up to date. */ memcpy (&sch->schib.scsw, &irb->scsw, sizeof (irb->scsw)); /* Call interrupt handler if there is one. */ - __enter_vx_admin(&vxis); if (sch->driver && sch->driver->irq) sch->driver->irq(&sch->dev); - __leave_vx_admin(&vxis); } if (sch) spin_unlock(&sch->lock); diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/kernel/irq/handle.c linux-2.6.18.3-vs2.1.1.2.3/kernel/irq/handle.c --- linux-2.6.18.3-vs2.1.1.2/kernel/irq/handle.c 2006-10-29 20:13:29 +0100 +++ linux-2.6.18.3-vs2.1.1.2.3/kernel/irq/handle.c 2006-11-26 20:20:00 +0100 @@ -171,7 +171,6 @@ fastcall unsigned int __do_IRQ(unsigned { struct irq_desc *desc = irq_desc + irq; struct irqaction *action; - struct vx_info_save vxis; unsigned int status; kstat_this_cpu.irqs[irq]++; @@ -181,17 +180,14 @@ fastcall unsigned int __do_IRQ(unsigned /* * No locking required for CPU-local interrupts: */ - __enter_vx_admin(&vxis); if (desc->chip->ack) desc->chip->ack(irq); action_ret = handle_IRQ_event(irq, regs, desc->action); desc->chip->end(irq); - __leave_vx_admin(&vxis); return 1; } spin_lock(&desc->lock); - __enter_vx_admin(&vxis); if (desc->chip->ack) desc->chip->ack(irq); /* @@ -254,7 +250,6 @@ out: * disabled while the handler was running. */ desc->chip->end(irq); - __leave_vx_admin(&vxis); spin_unlock(&desc->lock); return 1; diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/kernel/printk.c linux-2.6.18.3-vs2.1.1.2.3/kernel/printk.c --- linux-2.6.18.3-vs2.1.1.2/kernel/printk.c 2006-09-25 17:37:24 +0200 +++ linux-2.6.18.3-vs2.1.1.2.3/kernel/printk.c 2006-11-26 20:58:01 +0100 @@ -31,7 +31,6 @@ #include #include #include -#include #include #include @@ -507,10 +506,8 @@ asmlinkage int vprintk(const char *fmt, char *p; static char printk_buf[1024]; static int log_level_unknown = 1; - struct vx_info_save vxis; preempt_disable(); - __enter_vx_admin(&vxis); if (unlikely(oops_in_progress) && printk_cpu == smp_processor_id()) /* If a crash is occurring during printk() on this CPU, * make sure we can't deadlock */ @@ -619,7 +616,6 @@ asmlinkage int vprintk(const char *fmt, local_irq_restore(flags); } - __leave_vx_admin(&vxis); preempt_enable(); return printed_len; } diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.2/kernel/softirq.c linux-2.6.18.3-vs2.1.1.2.3/kernel/softirq.c --- linux-2.6.18.3-vs2.1.1.2/kernel/softirq.c 2006-09-25 17:56:22 +0200 +++ linux-2.6.18.3-vs2.1.1.2.3/kernel/softirq.c 2006-11-26 21:18:25 +0100 @@ -17,7 +17,6 @@ #include #include #include -#include #include /* @@ -206,7 +205,6 @@ EXPORT_SYMBOL(local_bh_enable_ip); asmlinkage void __do_softirq(void) { - struct vx_info_save vxis; struct softirq_action *h; __u32 pending; int max_restart = MAX_SOFTIRQ_RESTART; @@ -216,7 +214,6 @@ asmlinkage void __do_softirq(void) account_system_vtime(current); __local_bh_disable((unsigned long)__builtin_return_address(0)); - __enter_vx_admin(&vxis); trace_softirq_enter(); cpu = smp_processor_id(); @@ -248,7 +245,6 @@ restart: trace_softirq_exit(); - __leave_vx_admin(&vxis); account_system_vtime(current); _local_bh_enable(); }