summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm64/kernel/traps.c2
-rw-r--r--arch/parisc/mm/fault.c2
-rw-r--r--arch/powerpc/mm/fault.c3
-rw-r--r--arch/x86/mm/fault.c2
-rw-r--r--include/linux/sched/signal.h2
-rw-r--r--kernel/signal.c4
-rw-r--r--mm/memory-failure.c2
7 files changed, 8 insertions, 9 deletions
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index 64abe8450780..c76a64c1bcb3 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -266,7 +266,7 @@ void arm64_force_sig_mceerr(int code, void __user *addr, short lsb,
266 const char *str) 266 const char *str)
267{ 267{
268 arm64_show_signal(SIGBUS, str); 268 arm64_show_signal(SIGBUS, str);
269 force_sig_mceerr(code, addr, lsb, current); 269 force_sig_mceerr(code, addr, lsb);
270} 270}
271 271
272void arm64_force_sig_ptrace_errno_trap(int errno, void __user *addr, 272void arm64_force_sig_ptrace_errno_trap(int errno, void __user *addr,
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index c8e8b7c05558..56ceacb3401d 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -403,7 +403,7 @@ bad_area:
403 lsb = PAGE_SHIFT; 403 lsb = PAGE_SHIFT;
404 404
405 force_sig_mceerr(BUS_MCEERR_AR, (void __user *) address, 405 force_sig_mceerr(BUS_MCEERR_AR, (void __user *) address,
406 lsb, current); 406 lsb);
407 return; 407 return;
408 } 408 }
409#endif 409#endif
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index b5d3578d9f65..6ed6c341c670 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -182,8 +182,7 @@ static int do_sigbus(struct pt_regs *regs, unsigned long address,
182 if (fault & VM_FAULT_HWPOISON) 182 if (fault & VM_FAULT_HWPOISON)
183 lsb = PAGE_SHIFT; 183 lsb = PAGE_SHIFT;
184 184
185 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb, 185 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb);
186 current);
187 return 0; 186 return 0;
188 } 187 }
189 188
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 46df4c6aae46..c431326ee3fa 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1040,7 +1040,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
1040 lsb = hstate_index_to_shift(VM_FAULT_GET_HINDEX(fault)); 1040 lsb = hstate_index_to_shift(VM_FAULT_GET_HINDEX(fault));
1041 if (fault & VM_FAULT_HWPOISON) 1041 if (fault & VM_FAULT_HWPOISON)
1042 lsb = PAGE_SHIFT; 1042 lsb = PAGE_SHIFT;
1043 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb, tsk); 1043 force_sig_mceerr(BUS_MCEERR_AR, (void __user *)address, lsb);
1044 return; 1044 return;
1045 } 1045 }
1046#endif 1046#endif
diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h
index e9df3f0cce48..4178bb1f7709 100644
--- a/include/linux/sched/signal.h
+++ b/include/linux/sched/signal.h
@@ -316,7 +316,7 @@ int send_sig_fault(int sig, int code, void __user *addr
316 ___ARCH_SI_IA64(int imm, unsigned int flags, unsigned long isr) 316 ___ARCH_SI_IA64(int imm, unsigned int flags, unsigned long isr)
317 , struct task_struct *t); 317 , struct task_struct *t);
318 318
319int force_sig_mceerr(int code, void __user *, short, struct task_struct *); 319int force_sig_mceerr(int code, void __user *, short);
320int send_sig_mceerr(int code, void __user *, short, struct task_struct *); 320int send_sig_mceerr(int code, void __user *, short, struct task_struct *);
321 321
322int force_sig_bnderr(void __user *addr, void __user *lower, void __user *upper); 322int force_sig_bnderr(void __user *addr, void __user *lower, void __user *upper);
diff --git a/kernel/signal.c b/kernel/signal.c
index 20878c4c28c2..398489facf9f 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1666,7 +1666,7 @@ int send_sig_fault(int sig, int code, void __user *addr
1666 return send_sig_info(info.si_signo, &info, t); 1666 return send_sig_info(info.si_signo, &info, t);
1667} 1667}
1668 1668
1669int force_sig_mceerr(int code, void __user *addr, short lsb, struct task_struct *t) 1669int force_sig_mceerr(int code, void __user *addr, short lsb)
1670{ 1670{
1671 struct kernel_siginfo info; 1671 struct kernel_siginfo info;
1672 1672
@@ -1677,7 +1677,7 @@ int force_sig_mceerr(int code, void __user *addr, short lsb, struct task_struct
1677 info.si_code = code; 1677 info.si_code = code;
1678 info.si_addr = addr; 1678 info.si_addr = addr;
1679 info.si_addr_lsb = lsb; 1679 info.si_addr_lsb = lsb;
1680 return force_sig_info(info.si_signo, &info, t); 1680 return force_sig_info(info.si_signo, &info, current);
1681} 1681}
1682 1682
1683int send_sig_mceerr(int code, void __user *addr, short lsb, struct task_struct *t) 1683int send_sig_mceerr(int code, void __user *addr, short lsb, struct task_struct *t)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index fc8b51744579..bc749265a8f3 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -221,7 +221,7 @@ static int kill_proc(struct to_kill *tk, unsigned long pfn, int flags)
221 221
222 if ((flags & MF_ACTION_REQUIRED) && t->mm == current->mm) { 222 if ((flags & MF_ACTION_REQUIRED) && t->mm == current->mm) {
223 ret = force_sig_mceerr(BUS_MCEERR_AR, (void __user *)tk->addr, 223 ret = force_sig_mceerr(BUS_MCEERR_AR, (void __user *)tk->addr,
224 addr_lsb, current); 224 addr_lsb);
225 } else { 225 } else {
226 /* 226 /*
227 * Don't use force here, it's convenient if the signal 227 * Don't use force here, it's convenient if the signal