Skip to content

Commit

Permalink
m68k: invoke oom-killer from page fault
Browse files Browse the repository at this point in the history
As explained in commit 1c0fe6e, we want to call the architecture independent
oom killer when getting an unexplained OOM from handle_mm_fault, rather than
simply killing current.

Cc: linux-m68k@lists.linux-m68k.org
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-arch@vger.kernel.org
Signed-off-by: Nick Piggin <npiggin@suse.de>
Acked-by: David Rientjes <rientjes@google.com>
[Geert] Kill 2 introduced compiler warnings
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
  • Loading branch information
Nick Piggin authored and Geert Uytterhoeven committed May 17, 2010
1 parent f3c7f31 commit adbf6e6
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions arch/m68k/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
* the fault.
*/

survive:
fault = handle_mm_fault(mm, vma, address, write ? FAULT_FLAG_WRITE : 0);
#ifdef DEBUG
printk("handle_mm_fault returns %d\n",fault);
Expand All @@ -180,15 +179,10 @@ int do_page_fault(struct pt_regs *regs, unsigned long address,
*/
out_of_memory:
up_read(&mm->mmap_sem);
if (is_global_init(current)) {
yield();
down_read(&mm->mmap_sem);
goto survive;
}

printk("VM: killing process %s\n", current->comm);
if (user_mode(regs))
do_group_exit(SIGKILL);
if (!user_mode(regs))
goto no_context;
pagefault_out_of_memory();
return 0;

no_context:
current->thread.signo = SIGBUS;
Expand Down

0 comments on commit adbf6e6

Please sign in to comment.