Merge commit 'remotes/tip/x86/paravirt' into x86/untangle2
[pandora-kernel.git] / arch / x86 / mm / fault.c
index 65709a6..976b5a7 100644 (file)
@@ -808,7 +808,6 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)
        address = read_cr2();
 
        if (unlikely(notify_page_fault(regs)))
-               return;
        if (unlikely(kmmio_fault(regs, address)))
                return;
 
@@ -838,6 +837,9 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long 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.
@@ -846,6 +848,9 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)
                return;
        }
 
+       /* kprobes don't want to hook the spurious faults. */
+       if (notify_page_fault(regs))
+               return;
        /*
         * It's safe to allow irq's after cr2 has been saved and the
         * vmalloc fault has been handled.