From: Ingo Molnar Date: Fri, 6 Feb 2009 13:42:54 +0000 (+0100) Subject: Merge branch 'linus' into x86/mm X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=0464ac9ebd90cfd5792d3c1158af848281b7eb09;p=linux-beck.git Merge branch 'linus' into x86/mm Conflicts: arch/x86/mm/fault.c --- 0464ac9ebd90cfd5792d3c1158af848281b7eb09 diff --cc arch/x86/mm/fault.c index 8e9b0f1fd872,c76ef1d701c9..817a78d5acaf --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@@ -808,8 -601,8 +808,6 @@@ void __kprobes do_page_fault(struct pt_ /* get the address */ address = read_cr2(); - if (unlikely(notify_page_fault(regs))) - return; - si_code = SEGV_MAPERR; - if (unlikely(kmmio_fault(regs, address))) return; @@@ -832,17 -629,23 +830,22 @@@ return; /* Can handle a stale RO->RW TLB */ - if (spurious_fault(address, error_code)) + if (spurious_fault(error_code, address)) return; + /* kprobes don't want to hook the spurious faults. */ + if (notify_page_fault(regs)) + return; /* * Don't take the mm semaphore here. If we fixup a prefetch * fault we could otherwise deadlock. */ - goto bad_area_nosemaphore; + bad_area_nosemaphore(regs, error_code, address); + return; } - /* kprobes don't want to hook the spurious faults. */ - if (notify_page_fault(regs)) ++ if (unlikely(notify_page_fault(regs))) + return; - /* * It's safe to allow irq's after cr2 has been saved and the * vmalloc fault has been handled.