Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
[pandora-kernel.git] / arch / mn10300 / mm / fault.c
index 81f153f..59c3da4 100644 (file)
@@ -39,10 +39,6 @@ void bust_spinlocks(int yes)
 {
        if (yes) {
                oops_in_progress = 1;
-#ifdef CONFIG_SMP
-               /* Many serial drivers do __global_cli() */
-               global_irq_lock = 0;
-#endif
        } else {
                int loglevel_save = console_loglevel;
 #ifdef CONFIG_VT
@@ -100,8 +96,6 @@ static void print_pagetable_entries(pgd_t *pgdir, unsigned long address)
 }
 #endif
 
-asmlinkage void monitor_signal(struct pt_regs *);
-
 /*
  * This routine handles page faults.  It determines the address,
  * and the problem, and then passes it off to one of the appropriate
@@ -279,7 +273,6 @@ good_area:
  */
 bad_area:
        up_read(&mm->mmap_sem);
-       monitor_signal(regs);
 
        /* User mode accesses just cause a SIGSEGV */
        if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR) {
@@ -292,7 +285,6 @@ bad_area:
        }
 
 no_context:
-       monitor_signal(regs);
        /* Are we prepared to handle this kernel fault?  */
        if (fixup_exception(regs))
                return;
@@ -338,14 +330,13 @@ no_context:
  */
 out_of_memory:
        up_read(&mm->mmap_sem);
-       if ((fault_code & MMUFCR_xFC_ACCESS) != MMUFCR_xFC_ACCESS_USR)
-               goto no_context;
-       pagefault_out_of_memory();
-       return;
+       printk(KERN_ALERT "VM: killing process %s\n", tsk->comm);
+       if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR)
+               do_exit(SIGKILL);
+       goto no_context;
 
 do_sigbus:
        up_read(&mm->mmap_sem);
-       monitor_signal(regs);
 
        /*
         * Send a sigbus, regardless of whether we were in kernel