Index: linux-2.6.20-ipipe/arch/i386/kernel/ipipe.c =================================================================== --- linux-2.6.20-ipipe.orig/arch/i386/kernel/ipipe.c +++ linux-2.6.20-ipipe/arch/i386/kernel/ipipe.c @@ -680,8 +680,13 @@ fastcall int __ipipe_handle_exception(st /* Track the hw interrupt state before calling the Linux * exception handler, replicating it into the virtual mask. */ - if (irqs_disabled_hw()) - local_irq_disable(); + if (irqs_disabled_hw()) { + /* Do not trigger the alarm in ipipe_check_context() by using + * plain local_irq_disable(). */ + __ipipe_stall_root(); + trace_hardirqs_off(); + barrier(); + } #ifdef CONFIG_KGDB /* catch exception KGDB is interested in over non-root domains */