diff -NurpP --minimal linux-2.6.18.1-vs2.1.1-rc42/arch/alpha/kernel/irq.c linux-2.6.18.1-vs2.1.1-rc42.1/arch/alpha/kernel/irq.c --- linux-2.6.18.1-vs2.1.1-rc42/arch/alpha/kernel/irq.c 2006-09-20 16:57:57 +0200 +++ linux-2.6.18.1-vs2.1.1-rc42.1/arch/alpha/kernel/irq.c 2006-10-23 04:25:59 +0200 @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -140,6 +141,7 @@ handle_irq(int irq, struct pt_regs * reg * handled by some other CPU. (or is disabled) */ static unsigned int illegal_count=0; + struct vx_info_save vxis; if ((unsigned) irq > ACTUAL_NR_IRQS && illegal_count < MAX_ILLEGAL_IRQS ) { irq_err_count++; @@ -157,6 +159,8 @@ handle_irq(int irq, struct pt_regs * reg * at IPL 0. */ local_irq_disable(); + __enter_vx_admin(&vxis); __do_IRQ(irq, regs); + __leave_vx_admin(&vxis); irq_exit(); } diff -NurpP --minimal linux-2.6.18.1-vs2.1.1-rc42/arch/v850/kernel/irq.c linux-2.6.18.1-vs2.1.1-rc42.1/arch/v850/kernel/irq.c --- linux-2.6.18.1-vs2.1.1-rc42/arch/v850/kernel/irq.c 2006-09-20 16:58:06 +0200 +++ linux-2.6.18.1-vs2.1.1-rc42.1/arch/v850/kernel/irq.c 2006-10-23 04:27:27 +0200 @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -100,8 +101,12 @@ int show_interrupts(struct seq_file *p, interrupt. */ unsigned int handle_irq (int irq, struct pt_regs *regs) { + struct vx_info_save vxis; + irq_enter(); + __enter_vx_admin(&vxis); __do_IRQ(irq, regs); + __leave_vx_admin(&vxis); irq_exit(); return 1; }