diff -urpN --exclude-from=/home/davej/.exclude bk-linus/arch/i386/kernel/process.c linux-2.5/arch/i386/kernel/process.c --- bk-linus/arch/i386/kernel/process.c 2002-11-21 02:09:30.000000000 +0000 +++ linux-2.5/arch/i386/kernel/process.c 2002-11-21 17:55:02.000000000 +0000 @@ -44,6 +44,7 @@ #include #include #include +#include #include #ifdef CONFIG_MATH_EMULATION #include @@ -269,6 +270,8 @@ void release_thread(struct task_struct * BUG(); } } + + release_x86_irqs(dead_task); } /* diff -urpN --exclude-from=/home/davej/.exclude bk-linus/include/asm-i386/irq.h linux-2.5/include/asm-i386/irq.h --- bk-linus/include/asm-i386/irq.h 2002-11-21 02:21:50.000000000 +0000 +++ linux-2.5/include/asm-i386/irq.h 2002-11-21 18:03:23.000000000 +0000 @@ -23,6 +23,7 @@ static __inline__ int irq_cannonicalize( extern void disable_irq(unsigned int); extern void disable_irq_nosync(unsigned int); extern void enable_irq(unsigned int); +extern void release_x86_irqs(struct task_struct *); #ifdef CONFIG_X86_LOCAL_APIC #define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */