summaryrefslogtreecommitdiffstats
path: root/arch/mips/mm/fault.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-02-12 17:27:56 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-02-12 17:27:56 +0900
commit41480ae7a383dcffa497decdd97b3cb2caaa18ec (patch)
treef1e3afce2cbd0bbc544cd86a73e5b3093eb081c4 /arch/mips/mm/fault.c
parent508eb2ce222053e51e2243b7add8eeac85b1d250 (diff)
parent34aeb43e2d3800f4d8f96feb9f1b49cd506679d5 (diff)
downloadkernel-crypto-41480ae7a383dcffa497decdd97b3cb2caaa18ec.tar.gz
kernel-crypto-41480ae7a383dcffa497decdd97b3cb2caaa18ec.tar.xz
kernel-crypto-41480ae7a383dcffa497decdd97b3cb2caaa18ec.zip
Merge branch 'sh/stable-updates'
Diffstat (limited to 'arch/mips/mm/fault.c')
-rw-r--r--arch/mips/mm/fault.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index fa636fc6b7b..55767ad9f00 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -97,7 +97,6 @@ good_area:
goto bad_area;
}
-survive:
/*
* If for any reason at all we couldn't handle the fault,
* make sure we exit gracefully rather than endlessly redo
@@ -167,21 +166,13 @@ no_context:
field, regs->regs[31]);
die("Oops", regs);
-/*
- * We ran out of memory, or some other thing happened to us that made
- * us unable to handle the page fault gracefully.
- */
out_of_memory:
- up_read(&mm->mmap_sem);
- if (is_global_init(tsk)) {
- yield();
- down_read(&mm->mmap_sem);
- goto survive;
- }
- printk("VM: killing process %s\n", tsk->comm);
- if (user_mode(regs))
- do_group_exit(SIGKILL);
- goto no_context;
+ /*
+ * We ran out of memory, call the OOM killer, and return the userspace
+ * (which will retry the fault, or kill us if we got oom-killed).
+ */
+ pagefault_out_of_memory();
+ return;
do_sigbus:
up_read(&mm->mmap_sem);