Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebieder...
[linux-2.6-block.git] / arch / x86 / mm / fault.c
index 58e4f1f00bbc10d601ac08fa1a7982768eb24618..794f364cb8829ef5a719cafbc26766e68d08ca9e 100644 (file)
@@ -760,8 +760,7 @@ no_context(struct pt_regs *regs, unsigned long error_code,
                        set_signal_archinfo(address, error_code);
 
                        /* XXX: hwpoison faults will set the wrong code. */
-                       force_sig_fault(signal, si_code, (void __user *)address,
-                                       tsk);
+                       force_sig_fault(signal, si_code, (void __user *)address);
                }
 
                /*
@@ -922,7 +921,7 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
                if (si_code == SEGV_PKUERR)
                        force_sig_pkuerr((void __user *)address, pkey);
 
-               force_sig_fault(SIGSEGV, si_code, (void __user *)address, tsk);
+               force_sig_fault(SIGSEGV, si_code, (void __user *)address);
 
                return;
        }
@@ -1019,8 +1018,6 @@ static void
 do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
          vm_fault_t fault)
 {
-       struct task_struct *tsk = current;
-
        /* Kernel mode? Handle exceptions or die: */
        if (!(error_code & X86_PF_USER)) {
                no_context(regs, error_code, address, SIGBUS, BUS_ADRERR);
@@ -1035,6 +1032,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
 
 #ifdef CONFIG_MEMORY_FAILURE
        if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) {
+               struct task_struct *tsk = current;
                unsigned lsb = 0;
 
                pr_err(
@@ -1044,11 +1042,11 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
                        lsb = hstate_index_to_shift(VM_FAULT_GET_HINDEX(fault));
                if (fault & VM_FAULT_HWPOISON)
                        lsb = PAGE_SHIFT;
-               force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb, tsk);
+               force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb);
                return;
        }
 #endif
-       force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address, tsk);
+       force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address);
 }
 
 static noinline void