From: Ingo Molnar Restore the __do_IRQ() compat logic temporarily, until the MSI genirq conversion has been completed. Disable 4KSTACKS temporarily too. [akpm: this sucks] Signed-off-by: Ingo Molnar Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton --- arch/i386/Kconfig.debug | 4 ++++ arch/i386/kernel/irq.c | 5 +++++ 2 files changed, 9 insertions(+) diff -puN arch/i386/Kconfig.debug~genirq-msi-restore-__do_irq-compat-logic-temporarily arch/i386/Kconfig.debug --- a/arch/i386/Kconfig.debug~genirq-msi-restore-__do_irq-compat-logic-temporarily +++ a/arch/i386/Kconfig.debug @@ -56,8 +56,12 @@ config DEBUG_RODATA portion of the kernel code won't be covered by a 2MB TLB anymore. If in doubt, say "N". +# +# FIXME: Disabled temporarily until the MSI genirq conversion is done! +# config 4KSTACKS bool "Use 4Kb for kernel stacks instead of 8Kb" + depends on n depends on DEBUG_KERNEL help If you say Y here the kernel will use a 4Kb stacksize for the diff -puN arch/i386/kernel/irq.c~genirq-msi-restore-__do_irq-compat-logic-temporarily arch/i386/kernel/irq.c --- a/arch/i386/kernel/irq.c~genirq-msi-restore-__do_irq-compat-logic-temporarily +++ a/arch/i386/kernel/irq.c @@ -82,6 +82,10 @@ fastcall unsigned int do_IRQ(struct pt_r } #endif + if (!irq_desc[irq].handle_irq) { + __do_IRQ(irq, regs); + goto out_exit; + } #ifdef CONFIG_4KSTACKS curctx = (union irq_ctx *) current_thread_info(); @@ -121,6 +125,7 @@ fastcall unsigned int do_IRQ(struct pt_r #endif __do_IRQ(irq, regs); +out_exit: irq_exit(); return 1; _