diff options
author | Nick Piggin <npiggin@suse.de> | 2010-04-22 12:06:21 -0400 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2010-05-06 05:21:58 -0400 |
commit | 21e1c93631e027136ea4070e7bca600c4ad4f391 (patch) | |
tree | a6f7e949bbf4d7b6c9a67a40125293e23e42e1a2 /arch/microblaze/mm | |
parent | f3ff8212a24f1935b44a3fcdd81c787428f053a6 (diff) |
microblaze: invoke oom-killer from page fault
As explained in commit 1c0fe6e3bd, we want to call the architecture independent
oom killer when getting an unexplained OOM from handle_mm_fault, rather than
simply killing current.
Cc: microblaze-uclinux@itee.uq.edu.au
Cc: Michal Simek <monstr@monstr.eu>
Cc: linux-arch@vger.kernel.org
Signed-off-by: Nick Piggin <npiggin@suse.de>
Acked-by: David Rientjes <rientjes@google.com>
Acked-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/mm')
-rw-r--r-- | arch/microblaze/mm/fault.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c index 7af87f4b2c2c..bab922993185 100644 --- a/arch/microblaze/mm/fault.c +++ b/arch/microblaze/mm/fault.c | |||
@@ -273,16 +273,11 @@ bad_area_nosemaphore: | |||
273 | * us unable to handle the page fault gracefully. | 273 | * us unable to handle the page fault gracefully. |
274 | */ | 274 | */ |
275 | out_of_memory: | 275 | out_of_memory: |
276 | if (current->pid == 1) { | ||
277 | yield(); | ||
278 | down_read(&mm->mmap_sem); | ||
279 | goto survive; | ||
280 | } | ||
281 | up_read(&mm->mmap_sem); | 276 | up_read(&mm->mmap_sem); |
282 | printk(KERN_WARNING "VM: killing process %s\n", current->comm); | 277 | if (!user_mode(regs)) |
283 | if (user_mode(regs)) | 278 | bad_page_fault(regs, address, SIGKILL); |
284 | do_exit(SIGKILL); | 279 | else |
285 | bad_page_fault(regs, address, SIGKILL); | 280 | pagefault_out_of_memory(); |
286 | return; | 281 | return; |
287 | 282 | ||
288 | do_sigbus: | 283 | do_sigbus: |