diff -urpN --exclude-from=/home/davej/.exclude bk-linus/kernel/exit.c linux-2.5/kernel/exit.c
--- bk-linus/kernel/exit.c	2002-11-21 02:24:36.000000000 +0000
+++ linux-2.5/kernel/exit.c	2002-11-21 18:05:16.000000000 +0000
@@ -636,11 +636,11 @@ NORET_TYPE void do_exit(long code)
 {
 	struct task_struct *tsk = current;
 
-	if (in_interrupt())
+	if (unlikely(in_interrupt()))
 		panic("Aiee, killing interrupt handler!");
-	if (!tsk->pid)
+	if (unlikely(!tsk->pid))
 		panic("Attempted to kill the idle task!");
-	if (tsk->pid == 1)
+	if (unlikely(tsk->pid == 1))
 		panic("Attempted to kill init!");
 	tsk->flags |= PF_EXITING;
 	del_timer_sync(&tsk->real_timer);
