Merge branch 'linus' into x86/mm
authorIngo Molnar <mingo@elte.hu>
Fri, 6 Feb 2009 13:42:54 +0000 (14:42 +0100)
committerIngo Molnar <mingo@elte.hu>
Fri, 6 Feb 2009 13:42:54 +0000 (14:42 +0100)
Conflicts:
arch/x86/mm/fault.c

1  2 
arch/x86/mm/fault.c

index 8e9b0f1fd87272d4ce9205d20d43e79b779034c2,c76ef1d701c9f48625aed06d4e7b4ec3d98e8862..817a78d5acafb79bb69bdc5161d664adfbb1c7a2
@@@ -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;
  
                        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.