diff -urNp 2.4.19rc3/arch/i386/mm/fault.c oops-lock/arch/i386/mm/fault.c --- 2.4.19rc3/arch/i386/mm/fault.c Mon Jul 22 17:29:03 2002 +++ oops-lock/arch/i386/mm/fault.c Mon Jul 29 23:39:06 2002 @@ -27,6 +27,8 @@ extern void die(const char *,struct pt_regs *,long); +spinlock_t oops_lock = SPIN_LOCK_UNLOCKED; + /* * Ugly, ugly, but the goto's result in better assembly.. */ @@ -306,7 +308,7 @@ no_context: * Oops. The kernel tried to access some bad page. We'll have to * terminate things with extreme prejudice. */ - + spin_lock(&oops_lock); bust_spinlocks(1); if (address < PAGE_SIZE) @@ -327,6 +329,7 @@ no_context: } die("Oops", regs, error_code); bust_spinlocks(0); + spin_unlock(&oops_lock); do_exit(SIGKILL); /*