aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/mm/fault.c')
-rw-r--r--arch/powerpc/mm/fault.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 83ac4935eb10..1bd712c33ce2 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -308,7 +308,6 @@ good_area:
308 * make sure we exit gracefully rather than endlessly redo 308 * make sure we exit gracefully rather than endlessly redo
309 * the fault. 309 * the fault.
310 */ 310 */
311 survive:
312 ret = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0); 311 ret = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0);
313 if (unlikely(ret & VM_FAULT_ERROR)) { 312 if (unlikely(ret & VM_FAULT_ERROR)) {
314 if (ret & VM_FAULT_OOM) 313 if (ret & VM_FAULT_OOM)
@@ -360,15 +359,10 @@ bad_area_nosemaphore:
360 */ 359 */
361out_of_memory: 360out_of_memory:
362 up_read(&mm->mmap_sem); 361 up_read(&mm->mmap_sem);
363 if (is_global_init(current)) { 362 if (!user_mode(regs))
364 yield(); 363 return SIGKILL;
365 down_read(&mm->mmap_sem); 364 pagefault_out_of_memory();
366 goto survive; 365 return 0;
367 }
368 printk("VM: killing process %s\n", current->comm);
369 if (user_mode(regs))
370 do_group_exit(SIGKILL);
371 return SIGKILL;
372 366
373do_sigbus: 367do_sigbus:
374 up_read(&mm->mmap_sem); 368 up_read(&mm->mmap_sem);