From fa5b7ef192678d8bd6740320ad11dcde8d93246d Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Thu, 26 Mar 2009 15:23:44 +0100 Subject: [PATCH] --- yaml --- r: 135587 b: refs/heads/master c: 59fa4392dddae244a1148cbbcb090b5a5728f576 h: refs/heads/master i: 135585: c6476c4d4a8743115cb5fa2cc5d90749ebb8aef5 135583: 7731bfe534d10634accca127a461166822d41432 v: v3 --- [refs] | 2 +- trunk/arch/s390/mm/fault.c | 28 ++-------------------------- 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/[refs] b/[refs] index 5c74020474ab..47215678d2cc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 099b765139929efdcf232f8870804accf8c4cdc5 +refs/heads/master: 59fa4392dddae244a1148cbbcb090b5a5728f576 diff --git a/trunk/arch/s390/mm/fault.c b/trunk/arch/s390/mm/fault.c index 4d537205e83c..833e8366c351 100644 --- a/trunk/arch/s390/mm/fault.c +++ b/trunk/arch/s390/mm/fault.c @@ -200,29 +200,6 @@ static void do_low_address(struct pt_regs *regs, unsigned long error_code) do_no_context(regs, error_code, 0); } -/* - * We ran out of memory, or some other thing happened to us that made - * us unable to handle the page fault gracefully. - */ -static int do_out_of_memory(struct pt_regs *regs, unsigned long error_code, - unsigned long address) -{ - struct task_struct *tsk = current; - struct mm_struct *mm = tsk->mm; - - up_read(&mm->mmap_sem); - if (is_global_init(tsk)) { - yield(); - down_read(&mm->mmap_sem); - return 1; - } - printk("VM: killing process %s\n", tsk->comm); - if (regs->psw.mask & PSW_MASK_PSTATE) - do_group_exit(SIGKILL); - do_no_context(regs, error_code, address); - return 0; -} - static void do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address) { @@ -367,7 +344,6 @@ do_exception(struct pt_regs *regs, unsigned long error_code, int write) goto bad_area; } -survive: if (is_vm_hugetlb_page(vma)) address &= HPAGE_MASK; /* @@ -378,8 +354,8 @@ do_exception(struct pt_regs *regs, unsigned long error_code, int write) fault = handle_mm_fault(mm, vma, address, write); if (unlikely(fault & VM_FAULT_ERROR)) { if (fault & VM_FAULT_OOM) { - if (do_out_of_memory(regs, error_code, address)) - goto survive; + up_read(&mm->mmap_sem); + pagefault_out_of_memory(); return; } else if (fault & VM_FAULT_SIGBUS) { do_sigbus(regs, error_code, address);