aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2019-05-23 11:17:27 -0400
committerEric W. Biederman <ebiederm@xmission.com>2019-05-27 10:36:28 -0400
commit3cf5d076fb4d48979f382bc9452765bf8b79e740 (patch)
tree935f7af65a7a7f1ba514f1da5b207e2dc298eaca
parentcb44c9a0ab21a9ae4dfcabac1ed8e38aa872d1af (diff)
signal: Remove task parameter from force_sig
All of the remaining callers pass current into force_sig so remove the task parameter to make this obvious and to make misuse more difficult in the future. This also makes it clear force_sig passes current into force_sig_info. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
-rw-r--r--arch/alpha/kernel/signal.c4
-rw-r--r--arch/arc/kernel/process.c2
-rw-r--r--arch/arc/kernel/signal.c2
-rw-r--r--arch/arm/kernel/signal.c4
-rw-r--r--arch/arm64/kernel/traps.c2
-rw-r--r--arch/c6x/kernel/signal.c2
-rw-r--r--arch/csky/kernel/signal.c4
-rw-r--r--arch/h8300/kernel/ptrace_h.c4
-rw-r--r--arch/h8300/kernel/ptrace_s.c2
-rw-r--r--arch/h8300/kernel/signal.c2
-rw-r--r--arch/hexagon/kernel/signal.c2
-rw-r--r--arch/hexagon/kernel/traps.c10
-rw-r--r--arch/ia64/kernel/signal.c2
-rw-r--r--arch/ia64/kernel/traps.c6
-rw-r--r--arch/m68k/kernel/signal.c4
-rw-r--r--arch/m68k/kernel/traps.c16
-rw-r--r--arch/microblaze/kernel/signal.c2
-rw-r--r--arch/mips/kernel/branch.c18
-rw-r--r--arch/mips/kernel/kprobes.c2
-rw-r--r--arch/mips/kernel/signal.c8
-rw-r--r--arch/mips/kernel/signal_n32.c4
-rw-r--r--arch/mips/kernel/signal_o32.c8
-rw-r--r--arch/mips/kernel/traps.c36
-rw-r--r--arch/mips/kernel/unaligned.c20
-rw-r--r--arch/mips/sgi-ip22/ip22-berr.c2
-rw-r--r--arch/mips/sgi-ip22/ip28-berr.c2
-rw-r--r--arch/mips/sgi-ip27/ip27-berr.c2
-rw-r--r--arch/mips/sgi-ip32/ip32-berr.c2
-rw-r--r--arch/nds32/kernel/signal.c2
-rw-r--r--arch/nds32/kernel/traps.c6
-rw-r--r--arch/nios2/kernel/signal.c2
-rw-r--r--arch/openrisc/kernel/signal.c2
-rw-r--r--arch/openrisc/kernel/traps.c4
-rw-r--r--arch/parisc/kernel/signal.c2
-rw-r--r--arch/powerpc/kernel/signal_32.c6
-rw-r--r--arch/powerpc/kernel/signal_64.c2
-rw-r--r--arch/powerpc/platforms/cell/spufs/run.c2
-rw-r--r--arch/riscv/kernel/signal.c2
-rw-r--r--arch/s390/kernel/compat_signal.c4
-rw-r--r--arch/s390/kernel/signal.c4
-rw-r--r--arch/sh/kernel/cpu/sh2a/fpu.c2
-rw-r--r--arch/sh/kernel/cpu/sh4/fpu.c2
-rw-r--r--arch/sh/kernel/cpu/sh5/fpu.c4
-rw-r--r--arch/sh/kernel/ptrace_64.c4
-rw-r--r--arch/sh/kernel/signal_32.c4
-rw-r--r--arch/sh/kernel/signal_64.c4
-rw-r--r--arch/sh/kernel/traps.c4
-rw-r--r--arch/sh/kernel/traps_32.c8
-rw-r--r--arch/sh/kernel/traps_64.c2
-rw-r--r--arch/sparc/kernel/process_64.c2
-rw-r--r--arch/sparc/kernel/signal32.c4
-rw-r--r--arch/sparc/kernel/signal_32.c4
-rw-r--r--arch/sparc/kernel/signal_64.c6
-rw-r--r--arch/sparc/kernel/traps_64.c2
-rw-r--r--arch/sparc/mm/fault_32.c2
-rw-r--r--arch/um/kernel/exec.c2
-rw-r--r--arch/um/kernel/tlb.c4
-rw-r--r--arch/um/kernel/trap.c2
-rw-r--r--arch/unicore32/kernel/signal.c2
-rw-r--r--arch/x86/entry/vsyscall/vsyscall_64.c2
-rw-r--r--arch/x86/kernel/cpu/mce/core.c2
-rw-r--r--arch/x86/kernel/signal.c2
-rw-r--r--arch/x86/kernel/traps.c4
-rw-r--r--arch/x86/kernel/uprobes.c2
-rw-r--r--arch/x86/kernel/vm86_32.c2
-rw-r--r--arch/x86/mm/mpx.c2
-rw-r--r--arch/x86/um/signal.c4
-rw-r--r--arch/xtensa/kernel/signal.c2
-rw-r--r--arch/xtensa/kernel/traps.c6
-rw-r--r--drivers/misc/lkdtm/bugs.c2
-rw-r--r--include/linux/sched/signal.h2
-rw-r--r--include/linux/syscalls.h2
-rw-r--r--kernel/events/uprobes.c4
-rw-r--r--kernel/rseq.c2
-rw-r--r--kernel/signal.c6
-rw-r--r--security/safesetid/lsm.c4
76 files changed, 160 insertions, 166 deletions
diff --git a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c
index 33e904a05881..a813020d2f11 100644
--- a/arch/alpha/kernel/signal.c
+++ b/arch/alpha/kernel/signal.c
@@ -225,7 +225,7 @@ do_sigreturn(struct sigcontext __user *sc)
225 return; 225 return;
226 226
227give_sigsegv: 227give_sigsegv:
228 force_sig(SIGSEGV, current); 228 force_sig(SIGSEGV);
229} 229}
230 230
231asmlinkage void 231asmlinkage void
@@ -253,7 +253,7 @@ do_rt_sigreturn(struct rt_sigframe __user *frame)
253 return; 253 return;
254 254
255give_sigsegv: 255give_sigsegv:
256 force_sig(SIGSEGV, current); 256 force_sig(SIGSEGV);
257} 257}
258 258
259 259
diff --git a/arch/arc/kernel/process.c b/arch/arc/kernel/process.c
index 725e556678a4..deee16d5c03f 100644
--- a/arch/arc/kernel/process.c
+++ b/arch/arc/kernel/process.c
@@ -100,7 +100,7 @@ fault:
100 goto again; 100 goto again;
101 101
102fail: 102fail:
103 force_sig(SIGSEGV, current); 103 force_sig(SIGSEGV);
104 return ret; 104 return ret;
105} 105}
106 106
diff --git a/arch/arc/kernel/signal.c b/arch/arc/kernel/signal.c
index 1bfb7de696bd..547c8f0cdc3a 100644
--- a/arch/arc/kernel/signal.c
+++ b/arch/arc/kernel/signal.c
@@ -197,7 +197,7 @@ SYSCALL_DEFINE0(rt_sigreturn)
197 return regs->r0; 197 return regs->r0;
198 198
199badframe: 199badframe:
200 force_sig(SIGSEGV, current); 200 force_sig(SIGSEGV);
201 return 0; 201 return 0;
202} 202}
203 203
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index be5edfdde558..3870e0588d53 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -250,7 +250,7 @@ asmlinkage int sys_sigreturn(struct pt_regs *regs)
250 return regs->ARM_r0; 250 return regs->ARM_r0;
251 251
252badframe: 252badframe:
253 force_sig(SIGSEGV, current); 253 force_sig(SIGSEGV);
254 return 0; 254 return 0;
255} 255}
256 256
@@ -283,7 +283,7 @@ asmlinkage int sys_rt_sigreturn(struct pt_regs *regs)
283 return regs->ARM_r0; 283 return regs->ARM_r0;
284 284
285badframe: 285badframe:
286 force_sig(SIGSEGV, current); 286 force_sig(SIGSEGV);
287 return 0; 287 return 0;
288} 288}
289 289
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index e45d5b440fb1..64abe8450780 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -257,7 +257,7 @@ void arm64_force_sig_fault(int signo, int code, void __user *addr,
257{ 257{
258 arm64_show_signal(signo, str); 258 arm64_show_signal(signo, str);
259 if (signo == SIGKILL) 259 if (signo == SIGKILL)
260 force_sig(SIGKILL, current); 260 force_sig(SIGKILL);
261 else 261 else
262 force_sig_fault(signo, code, addr, current); 262 force_sig_fault(signo, code, addr, current);
263} 263}
diff --git a/arch/c6x/kernel/signal.c b/arch/c6x/kernel/signal.c
index 33b9f69c38f7..775de34b233a 100644
--- a/arch/c6x/kernel/signal.c
+++ b/arch/c6x/kernel/signal.c
@@ -93,7 +93,7 @@ asmlinkage int do_rt_sigreturn(struct pt_regs *regs)
93 return regs->a4; 93 return regs->a4;
94 94
95badframe: 95badframe:
96 force_sig(SIGSEGV, current); 96 force_sig(SIGSEGV);
97 return 0; 97 return 0;
98} 98}
99 99
diff --git a/arch/csky/kernel/signal.c b/arch/csky/kernel/signal.c
index 04a43cfd4e09..7c09adeb58bb 100644
--- a/arch/csky/kernel/signal.c
+++ b/arch/csky/kernel/signal.c
@@ -61,7 +61,6 @@ SYSCALL_DEFINE0(rt_sigreturn)
61{ 61{
62 struct pt_regs *regs = current_pt_regs(); 62 struct pt_regs *regs = current_pt_regs();
63 struct rt_sigframe __user *frame; 63 struct rt_sigframe __user *frame;
64 struct task_struct *task;
65 sigset_t set; 64 sigset_t set;
66 65
67 /* Always make any pending restarted system calls return -EINTR */ 66 /* Always make any pending restarted system calls return -EINTR */
@@ -86,8 +85,7 @@ SYSCALL_DEFINE0(rt_sigreturn)
86 return regs->a0; 85 return regs->a0;
87 86
88badframe: 87badframe:
89 task = current; 88 force_sig(SIGSEGV);
90 force_sig(SIGSEGV, task);
91 return 0; 89 return 0;
92} 90}
93 91
diff --git a/arch/h8300/kernel/ptrace_h.c b/arch/h8300/kernel/ptrace_h.c
index f5ff3b794c85..15db45a03b04 100644
--- a/arch/h8300/kernel/ptrace_h.c
+++ b/arch/h8300/kernel/ptrace_h.c
@@ -250,7 +250,7 @@ asmlinkage void trace_trap(unsigned long bp)
250{ 250{
251 if ((unsigned long)current->thread.breakinfo.addr == bp) { 251 if ((unsigned long)current->thread.breakinfo.addr == bp) {
252 user_disable_single_step(current); 252 user_disable_single_step(current);
253 force_sig(SIGTRAP, current); 253 force_sig(SIGTRAP);
254 } else 254 } else
255 force_sig(SIGILL, current); 255 force_sig(SIGILL);
256} 256}
diff --git a/arch/h8300/kernel/ptrace_s.c b/arch/h8300/kernel/ptrace_s.c
index c0af930052c0..ee21f37b7ed4 100644
--- a/arch/h8300/kernel/ptrace_s.c
+++ b/arch/h8300/kernel/ptrace_s.c
@@ -40,5 +40,5 @@ void user_enable_single_step(struct task_struct *child)
40asmlinkage void trace_trap(unsigned long bp) 40asmlinkage void trace_trap(unsigned long bp)
41{ 41{
42 (void)bp; 42 (void)bp;
43 force_sig(SIGTRAP, current); 43 force_sig(SIGTRAP);
44} 44}
diff --git a/arch/h8300/kernel/signal.c b/arch/h8300/kernel/signal.c
index e0f2b708e5d9..ef7489b7c459 100644
--- a/arch/h8300/kernel/signal.c
+++ b/arch/h8300/kernel/signal.c
@@ -126,7 +126,7 @@ asmlinkage int sys_rt_sigreturn(void)
126 return er0; 126 return er0;
127 127
128badframe: 128badframe:
129 force_sig(SIGSEGV, current); 129 force_sig(SIGSEGV);
130 return 0; 130 return 0;
131} 131}
132 132
diff --git a/arch/hexagon/kernel/signal.c b/arch/hexagon/kernel/signal.c
index 31e2cf95f189..0433fcbb496c 100644
--- a/arch/hexagon/kernel/signal.c
+++ b/arch/hexagon/kernel/signal.c
@@ -265,6 +265,6 @@ asmlinkage int sys_rt_sigreturn(void)
265 return regs->r00; 265 return regs->r00;
266 266
267badframe: 267badframe:
268 force_sig(SIGSEGV, current); 268 force_sig(SIGSEGV);
269 return 0; 269 return 0;
270} 270}
diff --git a/arch/hexagon/kernel/traps.c b/arch/hexagon/kernel/traps.c
index 91ee04842c22..e634414361df 100644
--- a/arch/hexagon/kernel/traps.c
+++ b/arch/hexagon/kernel/traps.c
@@ -252,7 +252,7 @@ int die_if_kernel(char *str, struct pt_regs *regs, long err)
252static void misaligned_instruction(struct pt_regs *regs) 252static void misaligned_instruction(struct pt_regs *regs)
253{ 253{
254 die_if_kernel("Misaligned Instruction", regs, 0); 254 die_if_kernel("Misaligned Instruction", regs, 0);
255 force_sig(SIGBUS, current); 255 force_sig(SIGBUS);
256} 256}
257 257
258/* 258/*
@@ -263,19 +263,19 @@ static void misaligned_instruction(struct pt_regs *regs)
263static void misaligned_data_load(struct pt_regs *regs) 263static void misaligned_data_load(struct pt_regs *regs)
264{ 264{
265 die_if_kernel("Misaligned Data Load", regs, 0); 265 die_if_kernel("Misaligned Data Load", regs, 0);
266 force_sig(SIGBUS, current); 266 force_sig(SIGBUS);
267} 267}
268 268
269static void misaligned_data_store(struct pt_regs *regs) 269static void misaligned_data_store(struct pt_regs *regs)
270{ 270{
271 die_if_kernel("Misaligned Data Store", regs, 0); 271 die_if_kernel("Misaligned Data Store", regs, 0);
272 force_sig(SIGBUS, current); 272 force_sig(SIGBUS);
273} 273}
274 274
275static void illegal_instruction(struct pt_regs *regs) 275static void illegal_instruction(struct pt_regs *regs)
276{ 276{
277 die_if_kernel("Illegal Instruction", regs, 0); 277 die_if_kernel("Illegal Instruction", regs, 0);
278 force_sig(SIGILL, current); 278 force_sig(SIGILL);
279} 279}
280 280
281/* 281/*
@@ -285,7 +285,7 @@ static void illegal_instruction(struct pt_regs *regs)
285static void precise_bus_error(struct pt_regs *regs) 285static void precise_bus_error(struct pt_regs *regs)
286{ 286{
287 die_if_kernel("Precise Bus Error", regs, 0); 287 die_if_kernel("Precise Bus Error", regs, 0);
288 force_sig(SIGBUS, current); 288 force_sig(SIGBUS);
289} 289}
290 290
291/* 291/*
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
index 518cceb5d4af..e5044aed9452 100644
--- a/arch/ia64/kernel/signal.c
+++ b/arch/ia64/kernel/signal.c
@@ -152,7 +152,7 @@ ia64_rt_sigreturn (struct sigscratch *scr)
152 return retval; 152 return retval;
153 153
154 give_sigsegv: 154 give_sigsegv:
155 force_sig(SIGSEGV, current); 155 force_sig(SIGSEGV);
156 return retval; 156 return retval;
157} 157}
158 158
diff --git a/arch/ia64/kernel/traps.c b/arch/ia64/kernel/traps.c
index 85d8616ac4f6..0a3adbfebc2a 100644
--- a/arch/ia64/kernel/traps.c
+++ b/arch/ia64/kernel/traps.c
@@ -589,14 +589,14 @@ ia64_fault (unsigned long vector, unsigned long isr, unsigned long ifa,
589 printk(KERN_ERR "Unexpected IA-32 exception (Trap 45)\n"); 589 printk(KERN_ERR "Unexpected IA-32 exception (Trap 45)\n");
590 printk(KERN_ERR " iip - 0x%lx, ifa - 0x%lx, isr - 0x%lx\n", 590 printk(KERN_ERR " iip - 0x%lx, ifa - 0x%lx, isr - 0x%lx\n",
591 iip, ifa, isr); 591 iip, ifa, isr);
592 force_sig(SIGSEGV, current); 592 force_sig(SIGSEGV);
593 return; 593 return;
594 594
595 case 46: 595 case 46:
596 printk(KERN_ERR "Unexpected IA-32 intercept trap (Trap 46)\n"); 596 printk(KERN_ERR "Unexpected IA-32 intercept trap (Trap 46)\n");
597 printk(KERN_ERR " iip - 0x%lx, ifa - 0x%lx, isr - 0x%lx, iim - 0x%lx\n", 597 printk(KERN_ERR " iip - 0x%lx, ifa - 0x%lx, isr - 0x%lx, iim - 0x%lx\n",
598 iip, ifa, isr, iim); 598 iip, ifa, isr, iim);
599 force_sig(SIGSEGV, current); 599 force_sig(SIGSEGV);
600 return; 600 return;
601 601
602 case 47: 602 case 47:
@@ -608,5 +608,5 @@ ia64_fault (unsigned long vector, unsigned long isr, unsigned long ifa,
608 break; 608 break;
609 } 609 }
610 if (!die_if_kernel(buf, &regs, error)) 610 if (!die_if_kernel(buf, &regs, error))
611 force_sig(SIGILL, current); 611 force_sig(SIGILL);
612} 612}
diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c
index 87e7f3639839..05610e6924c1 100644
--- a/arch/m68k/kernel/signal.c
+++ b/arch/m68k/kernel/signal.c
@@ -803,7 +803,7 @@ asmlinkage int do_sigreturn(struct pt_regs *regs, struct switch_stack *sw)
803 return regs->d0; 803 return regs->d0;
804 804
805badframe: 805badframe:
806 force_sig(SIGSEGV, current); 806 force_sig(SIGSEGV);
807 return 0; 807 return 0;
808} 808}
809 809
@@ -825,7 +825,7 @@ asmlinkage int do_rt_sigreturn(struct pt_regs *regs, struct switch_stack *sw)
825 return regs->d0; 825 return regs->d0;
826 826
827badframe: 827badframe:
828 force_sig(SIGSEGV, current); 828 force_sig(SIGSEGV);
829 return 0; 829 return 0;
830} 830}
831 831
diff --git a/arch/m68k/kernel/traps.c b/arch/m68k/kernel/traps.c
index b2fd000b9285..2b6e143abd73 100644
--- a/arch/m68k/kernel/traps.c
+++ b/arch/m68k/kernel/traps.c
@@ -431,7 +431,7 @@ static inline void bus_error030 (struct frame *fp)
431 pr_err("BAD KERNEL BUSERR\n"); 431 pr_err("BAD KERNEL BUSERR\n");
432 432
433 die_if_kernel("Oops", &fp->ptregs,0); 433 die_if_kernel("Oops", &fp->ptregs,0);
434 force_sig(SIGKILL, current); 434 force_sig(SIGKILL);
435 return; 435 return;
436 } 436 }
437 } else { 437 } else {
@@ -463,7 +463,7 @@ static inline void bus_error030 (struct frame *fp)
463 !(ssw & RW) ? "write" : "read", addr, 463 !(ssw & RW) ? "write" : "read", addr,
464 fp->ptregs.pc); 464 fp->ptregs.pc);
465 die_if_kernel ("Oops", &fp->ptregs, buserr_type); 465 die_if_kernel ("Oops", &fp->ptregs, buserr_type);
466 force_sig (SIGBUS, current); 466 force_sig (SIGBUS);
467 return; 467 return;
468 } 468 }
469 469
@@ -493,7 +493,7 @@ static inline void bus_error030 (struct frame *fp)
493 do_page_fault (&fp->ptregs, addr, 0); 493 do_page_fault (&fp->ptregs, addr, 0);
494 } else { 494 } else {
495 pr_debug("protection fault on insn access (segv).\n"); 495 pr_debug("protection fault on insn access (segv).\n");
496 force_sig (SIGSEGV, current); 496 force_sig (SIGSEGV);
497 } 497 }
498} 498}
499#else 499#else
@@ -571,7 +571,7 @@ static inline void bus_error030 (struct frame *fp)
571 !(ssw & RW) ? "write" : "read", addr, 571 !(ssw & RW) ? "write" : "read", addr,
572 fp->ptregs.pc); 572 fp->ptregs.pc);
573 die_if_kernel("Oops",&fp->ptregs,mmusr); 573 die_if_kernel("Oops",&fp->ptregs,mmusr);
574 force_sig(SIGSEGV, current); 574 force_sig(SIGSEGV);
575 return; 575 return;
576 } else { 576 } else {
577#if 0 577#if 0
@@ -598,7 +598,7 @@ static inline void bus_error030 (struct frame *fp)
598#endif 598#endif
599 pr_debug("Unknown SIGSEGV - 1\n"); 599 pr_debug("Unknown SIGSEGV - 1\n");
600 die_if_kernel("Oops",&fp->ptregs,mmusr); 600 die_if_kernel("Oops",&fp->ptregs,mmusr);
601 force_sig(SIGSEGV, current); 601 force_sig(SIGSEGV);
602 return; 602 return;
603 } 603 }
604 604
@@ -621,7 +621,7 @@ static inline void bus_error030 (struct frame *fp)
621 buserr: 621 buserr:
622 pr_err("BAD KERNEL BUSERR\n"); 622 pr_err("BAD KERNEL BUSERR\n");
623 die_if_kernel("Oops",&fp->ptregs,0); 623 die_if_kernel("Oops",&fp->ptregs,0);
624 force_sig(SIGKILL, current); 624 force_sig(SIGKILL);
625 return; 625 return;
626 } 626 }
627 627
@@ -660,7 +660,7 @@ static inline void bus_error030 (struct frame *fp)
660 addr, fp->ptregs.pc); 660 addr, fp->ptregs.pc);
661 pr_debug("Unknown SIGSEGV - 2\n"); 661 pr_debug("Unknown SIGSEGV - 2\n");
662 die_if_kernel("Oops",&fp->ptregs,mmusr); 662 die_if_kernel("Oops",&fp->ptregs,mmusr);
663 force_sig(SIGSEGV, current); 663 force_sig(SIGSEGV);
664 return; 664 return;
665 } 665 }
666 666
@@ -804,7 +804,7 @@ asmlinkage void buserr_c(struct frame *fp)
804 default: 804 default:
805 die_if_kernel("bad frame format",&fp->ptregs,0); 805 die_if_kernel("bad frame format",&fp->ptregs,0);
806 pr_debug("Unknown SIGSEGV - 4\n"); 806 pr_debug("Unknown SIGSEGV - 4\n");
807 force_sig(SIGSEGV, current); 807 force_sig(SIGSEGV);
808 } 808 }
809} 809}
810 810
diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c
index 0685696349bb..cdd4feb279c5 100644
--- a/arch/microblaze/kernel/signal.c
+++ b/arch/microblaze/kernel/signal.c
@@ -108,7 +108,7 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
108 return rval; 108 return rval;
109 109
110badframe: 110badframe:
111 force_sig(SIGSEGV, current); 111 force_sig(SIGSEGV);
112 return 0; 112 return 0;
113} 113}
114 114
diff --git a/arch/mips/kernel/branch.c b/arch/mips/kernel/branch.c
index 180ad081afcf..1db29957a931 100644
--- a/arch/mips/kernel/branch.c
+++ b/arch/mips/kernel/branch.c
@@ -32,7 +32,7 @@ int __isa_exception_epc(struct pt_regs *regs)
32 /* Calculate exception PC in branch delay slot. */ 32 /* Calculate exception PC in branch delay slot. */
33 if (__get_user(inst, (u16 __user *) msk_isa16_mode(epc))) { 33 if (__get_user(inst, (u16 __user *) msk_isa16_mode(epc))) {
34 /* This should never happen because delay slot was checked. */ 34 /* This should never happen because delay slot was checked. */
35 force_sig(SIGSEGV, current); 35 force_sig(SIGSEGV);
36 return epc; 36 return epc;
37 } 37 }
38 if (cpu_has_mips16) { 38 if (cpu_has_mips16) {
@@ -305,7 +305,7 @@ int __microMIPS_compute_return_epc(struct pt_regs *regs)
305 return 0; 305 return 0;
306 306
307sigsegv: 307sigsegv:
308 force_sig(SIGSEGV, current); 308 force_sig(SIGSEGV);
309 return -EFAULT; 309 return -EFAULT;
310} 310}
311 311
@@ -328,7 +328,7 @@ int __MIPS16e_compute_return_epc(struct pt_regs *regs)
328 /* Read the instruction. */ 328 /* Read the instruction. */
329 addr = (u16 __user *)msk_isa16_mode(epc); 329 addr = (u16 __user *)msk_isa16_mode(epc);
330 if (__get_user(inst.full, addr)) { 330 if (__get_user(inst.full, addr)) {
331 force_sig(SIGSEGV, current); 331 force_sig(SIGSEGV);
332 return -EFAULT; 332 return -EFAULT;
333 } 333 }
334 334
@@ -343,7 +343,7 @@ int __MIPS16e_compute_return_epc(struct pt_regs *regs)
343 case MIPS16e_jal_op: 343 case MIPS16e_jal_op:
344 addr += 1; 344 addr += 1;
345 if (__get_user(inst2, addr)) { 345 if (__get_user(inst2, addr)) {
346 force_sig(SIGSEGV, current); 346 force_sig(SIGSEGV);
347 return -EFAULT; 347 return -EFAULT;
348 } 348 }
349 fullinst = ((unsigned)inst.full << 16) | inst2; 349 fullinst = ((unsigned)inst.full << 16) | inst2;
@@ -829,17 +829,17 @@ int __compute_return_epc_for_insn(struct pt_regs *regs,
829sigill_dsp: 829sigill_dsp:
830 pr_debug("%s: DSP branch but not DSP ASE - sending SIGILL.\n", 830 pr_debug("%s: DSP branch but not DSP ASE - sending SIGILL.\n",
831 current->comm); 831 current->comm);
832 force_sig(SIGILL, current); 832 force_sig(SIGILL);
833 return -EFAULT; 833 return -EFAULT;
834sigill_r2r6: 834sigill_r2r6:
835 pr_debug("%s: R2 branch but r2-to-r6 emulator is not present - sending SIGILL.\n", 835 pr_debug("%s: R2 branch but r2-to-r6 emulator is not present - sending SIGILL.\n",
836 current->comm); 836 current->comm);
837 force_sig(SIGILL, current); 837 force_sig(SIGILL);
838 return -EFAULT; 838 return -EFAULT;
839sigill_r6: 839sigill_r6:
840 pr_debug("%s: R6 branch but no MIPSr6 ISA support - sending SIGILL.\n", 840 pr_debug("%s: R6 branch but no MIPSr6 ISA support - sending SIGILL.\n",
841 current->comm); 841 current->comm);
842 force_sig(SIGILL, current); 842 force_sig(SIGILL);
843 return -EFAULT; 843 return -EFAULT;
844} 844}
845EXPORT_SYMBOL_GPL(__compute_return_epc_for_insn); 845EXPORT_SYMBOL_GPL(__compute_return_epc_for_insn);
@@ -859,7 +859,7 @@ int __compute_return_epc(struct pt_regs *regs)
859 */ 859 */
860 addr = (unsigned int __user *) epc; 860 addr = (unsigned int __user *) epc;
861 if (__get_user(insn.word, addr)) { 861 if (__get_user(insn.word, addr)) {
862 force_sig(SIGSEGV, current); 862 force_sig(SIGSEGV);
863 return -EFAULT; 863 return -EFAULT;
864 } 864 }
865 865
@@ -867,7 +867,7 @@ int __compute_return_epc(struct pt_regs *regs)
867 867
868unaligned: 868unaligned:
869 printk("%s: unaligned epc - sending SIGBUS.\n", current->comm); 869 printk("%s: unaligned epc - sending SIGBUS.\n", current->comm);
870 force_sig(SIGBUS, current); 870 force_sig(SIGBUS);
871 return -EFAULT; 871 return -EFAULT;
872} 872}
873 873
diff --git a/arch/mips/kernel/kprobes.c b/arch/mips/kernel/kprobes.c
index 54cd675c5d1d..62af3ed65794 100644
--- a/arch/mips/kernel/kprobes.c
+++ b/arch/mips/kernel/kprobes.c
@@ -232,7 +232,7 @@ static int evaluate_branch_instruction(struct kprobe *p, struct pt_regs *regs,
232 232
233unaligned: 233unaligned:
234 pr_notice("%s: unaligned epc - sending SIGBUS.\n", current->comm); 234 pr_notice("%s: unaligned epc - sending SIGBUS.\n", current->comm);
235 force_sig(SIGBUS, current); 235 force_sig(SIGBUS);
236 return -EFAULT; 236 return -EFAULT;
237 237
238} 238}
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
index d75337974ee9..f6efabcb4e92 100644
--- a/arch/mips/kernel/signal.c
+++ b/arch/mips/kernel/signal.c
@@ -641,7 +641,7 @@ asmlinkage void sys_sigreturn(void)
641 if (sig < 0) 641 if (sig < 0)
642 goto badframe; 642 goto badframe;
643 else if (sig) 643 else if (sig)
644 force_sig(sig, current); 644 force_sig(sig);
645 645
646 /* 646 /*
647 * Don't let your children do this ... 647 * Don't let your children do this ...
@@ -654,7 +654,7 @@ asmlinkage void sys_sigreturn(void)
654 /* Unreached */ 654 /* Unreached */
655 655
656badframe: 656badframe:
657 force_sig(SIGSEGV, current); 657 force_sig(SIGSEGV);
658} 658}
659#endif /* CONFIG_TRAD_SIGNALS */ 659#endif /* CONFIG_TRAD_SIGNALS */
660 660
@@ -678,7 +678,7 @@ asmlinkage void sys_rt_sigreturn(void)
678 if (sig < 0) 678 if (sig < 0)
679 goto badframe; 679 goto badframe;
680 else if (sig) 680 else if (sig)
681 force_sig(sig, current); 681 force_sig(sig);
682 682
683 if (restore_altstack(&frame->rs_uc.uc_stack)) 683 if (restore_altstack(&frame->rs_uc.uc_stack))
684 goto badframe; 684 goto badframe;
@@ -694,7 +694,7 @@ asmlinkage void sys_rt_sigreturn(void)
694 /* Unreached */ 694 /* Unreached */
695 695
696badframe: 696badframe:
697 force_sig(SIGSEGV, current); 697 force_sig(SIGSEGV);
698} 698}
699 699
700#ifdef CONFIG_TRAD_SIGNALS 700#ifdef CONFIG_TRAD_SIGNALS
diff --git a/arch/mips/kernel/signal_n32.c b/arch/mips/kernel/signal_n32.c
index c498b027823e..a7601e862261 100644
--- a/arch/mips/kernel/signal_n32.c
+++ b/arch/mips/kernel/signal_n32.c
@@ -84,7 +84,7 @@ asmlinkage void sysn32_rt_sigreturn(void)
84 if (sig < 0) 84 if (sig < 0)
85 goto badframe; 85 goto badframe;
86 else if (sig) 86 else if (sig)
87 force_sig(sig, current); 87 force_sig(sig);
88 88
89 if (compat_restore_altstack(&frame->rs_uc.uc_stack)) 89 if (compat_restore_altstack(&frame->rs_uc.uc_stack))
90 goto badframe; 90 goto badframe;
@@ -100,7 +100,7 @@ asmlinkage void sysn32_rt_sigreturn(void)
100 /* Unreached */ 100 /* Unreached */
101 101
102badframe: 102badframe:
103 force_sig(SIGSEGV, current); 103 force_sig(SIGSEGV);
104} 104}
105 105
106static int setup_rt_frame_n32(void *sig_return, struct ksignal *ksig, 106static int setup_rt_frame_n32(void *sig_return, struct ksignal *ksig,
diff --git a/arch/mips/kernel/signal_o32.c b/arch/mips/kernel/signal_o32.c
index df259618e834..299a7a28ca33 100644
--- a/arch/mips/kernel/signal_o32.c
+++ b/arch/mips/kernel/signal_o32.c
@@ -171,7 +171,7 @@ asmlinkage void sys32_rt_sigreturn(void)
171 if (sig < 0) 171 if (sig < 0)
172 goto badframe; 172 goto badframe;
173 else if (sig) 173 else if (sig)
174 force_sig(sig, current); 174 force_sig(sig);
175 175
176 if (compat_restore_altstack(&frame->rs_uc.uc_stack)) 176 if (compat_restore_altstack(&frame->rs_uc.uc_stack))
177 goto badframe; 177 goto badframe;
@@ -187,7 +187,7 @@ asmlinkage void sys32_rt_sigreturn(void)
187 /* Unreached */ 187 /* Unreached */
188 188
189badframe: 189badframe:
190 force_sig(SIGSEGV, current); 190 force_sig(SIGSEGV);
191} 191}
192 192
193static int setup_rt_frame_32(void *sig_return, struct ksignal *ksig, 193static int setup_rt_frame_32(void *sig_return, struct ksignal *ksig,
@@ -273,7 +273,7 @@ asmlinkage void sys32_sigreturn(void)
273 if (sig < 0) 273 if (sig < 0)
274 goto badframe; 274 goto badframe;
275 else if (sig) 275 else if (sig)
276 force_sig(sig, current); 276 force_sig(sig);
277 277
278 /* 278 /*
279 * Don't let your children do this ... 279 * Don't let your children do this ...
@@ -286,5 +286,5 @@ asmlinkage void sys32_sigreturn(void)
286 /* Unreached */ 286 /* Unreached */
287 287
288badframe: 288badframe:
289 force_sig(SIGSEGV, current); 289 force_sig(SIGSEGV);
290} 290}
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index c52766a5b85f..a6031b045b95 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -482,7 +482,7 @@ asmlinkage void do_be(struct pt_regs *regs)
482 goto out; 482 goto out;
483 483
484 die_if_kernel("Oops", regs); 484 die_if_kernel("Oops", regs);
485 force_sig(SIGBUS, current); 485 force_sig(SIGBUS);
486 486
487out: 487out:
488 exception_exit(prev_state); 488 exception_exit(prev_state);
@@ -765,7 +765,7 @@ int process_fpemu_return(int sig, void __user *fault_addr, unsigned long fcr31)
765 return 1; 765 return 1;
766 766
767 default: 767 default:
768 force_sig(sig, current); 768 force_sig(sig);
769 return 1; 769 return 1;
770 } 770 }
771} 771}
@@ -947,7 +947,7 @@ void do_trap_or_bp(struct pt_regs *regs, unsigned int code, int si_code,
947 break; 947 break;
948 case BRK_BUG: 948 case BRK_BUG:
949 die_if_kernel("Kernel bug detected", regs); 949 die_if_kernel("Kernel bug detected", regs);
950 force_sig(SIGTRAP, current); 950 force_sig(SIGTRAP);
951 break; 951 break;
952 case BRK_MEMU: 952 case BRK_MEMU:
953 /* 953 /*
@@ -962,7 +962,7 @@ void do_trap_or_bp(struct pt_regs *regs, unsigned int code, int si_code,
962 return; 962 return;
963 963
964 die_if_kernel("Math emu break/trap", regs); 964 die_if_kernel("Math emu break/trap", regs);
965 force_sig(SIGTRAP, current); 965 force_sig(SIGTRAP);
966 break; 966 break;
967 default: 967 default:
968 scnprintf(b, sizeof(b), "%s instruction in kernel code", str); 968 scnprintf(b, sizeof(b), "%s instruction in kernel code", str);
@@ -970,7 +970,7 @@ void do_trap_or_bp(struct pt_regs *regs, unsigned int code, int si_code,
970 if (si_code) { 970 if (si_code) {
971 force_sig_fault(SIGTRAP, si_code, NULL, current); 971 force_sig_fault(SIGTRAP, si_code, NULL, current);
972 } else { 972 } else {
973 force_sig(SIGTRAP, current); 973 force_sig(SIGTRAP);
974 } 974 }
975 } 975 }
976} 976}
@@ -1063,7 +1063,7 @@ out:
1063 return; 1063 return;
1064 1064
1065out_sigsegv: 1065out_sigsegv:
1066 force_sig(SIGSEGV, current); 1066 force_sig(SIGSEGV);
1067 goto out; 1067 goto out;
1068} 1068}
1069 1069
@@ -1105,7 +1105,7 @@ out:
1105 return; 1105 return;
1106 1106
1107out_sigsegv: 1107out_sigsegv:
1108 force_sig(SIGSEGV, current); 1108 force_sig(SIGSEGV);
1109 goto out; 1109 goto out;
1110} 1110}
1111 1111
@@ -1191,7 +1191,7 @@ no_r2_instr:
1191 if (unlikely(status > 0)) { 1191 if (unlikely(status > 0)) {
1192 regs->cp0_epc = old_epc; /* Undo skip-over. */ 1192 regs->cp0_epc = old_epc; /* Undo skip-over. */
1193 regs->regs[31] = old31; 1193 regs->regs[31] = old31;
1194 force_sig(status, current); 1194 force_sig(status);
1195 } 1195 }
1196 1196
1197out: 1197out:
@@ -1220,7 +1220,7 @@ static int default_cu2_call(struct notifier_block *nfb, unsigned long action,
1220 1220
1221 die_if_kernel("COP2: Unhandled kernel unaligned access or invalid " 1221 die_if_kernel("COP2: Unhandled kernel unaligned access or invalid "
1222 "instruction", regs); 1222 "instruction", regs);
1223 force_sig(SIGILL, current); 1223 force_sig(SIGILL);
1224 1224
1225 return NOTIFY_OK; 1225 return NOTIFY_OK;
1226} 1226}
@@ -1383,7 +1383,7 @@ asmlinkage void do_cpu(struct pt_regs *regs)
1383 if (unlikely(status > 0)) { 1383 if (unlikely(status > 0)) {
1384 regs->cp0_epc = old_epc; /* Undo skip-over. */ 1384 regs->cp0_epc = old_epc; /* Undo skip-over. */
1385 regs->regs[31] = old31; 1385 regs->regs[31] = old31;
1386 force_sig(status, current); 1386 force_sig(status);
1387 } 1387 }
1388 1388
1389 break; 1389 break;
@@ -1403,7 +1403,7 @@ asmlinkage void do_cpu(struct pt_regs *regs)
1403 * emulator too. 1403 * emulator too.
1404 */ 1404 */
1405 if (raw_cpu_has_fpu || !cpu_has_mips_4_5_64_r2_r6) { 1405 if (raw_cpu_has_fpu || !cpu_has_mips_4_5_64_r2_r6) {
1406 force_sig(SIGILL, current); 1406 force_sig(SIGILL);
1407 break; 1407 break;
1408 } 1408 }
1409 /* Fall through. */ 1409 /* Fall through. */
@@ -1437,7 +1437,7 @@ asmlinkage void do_cpu(struct pt_regs *regs)
1437#else /* CONFIG_MIPS_FP_SUPPORT */ 1437#else /* CONFIG_MIPS_FP_SUPPORT */
1438 case 1: 1438 case 1:
1439 case 3: 1439 case 3:
1440 force_sig(SIGILL, current); 1440 force_sig(SIGILL);
1441 break; 1441 break;
1442#endif /* CONFIG_MIPS_FP_SUPPORT */ 1442#endif /* CONFIG_MIPS_FP_SUPPORT */
1443 1443
@@ -1464,7 +1464,7 @@ asmlinkage void do_msa_fpe(struct pt_regs *regs, unsigned int msacsr)
1464 local_irq_enable(); 1464 local_irq_enable();
1465 1465
1466 die_if_kernel("do_msa_fpe invoked from kernel context!", regs); 1466 die_if_kernel("do_msa_fpe invoked from kernel context!", regs);
1467 force_sig(SIGFPE, current); 1467 force_sig(SIGFPE);
1468out: 1468out:
1469 exception_exit(prev_state); 1469 exception_exit(prev_state);
1470} 1470}
@@ -1477,7 +1477,7 @@ asmlinkage void do_msa(struct pt_regs *regs)
1477 prev_state = exception_enter(); 1477 prev_state = exception_enter();
1478 1478
1479 if (!cpu_has_msa || test_thread_flag(TIF_32BIT_FPREGS)) { 1479 if (!cpu_has_msa || test_thread_flag(TIF_32BIT_FPREGS)) {
1480 force_sig(SIGILL, current); 1480 force_sig(SIGILL);
1481 goto out; 1481 goto out;
1482 } 1482 }
1483 1483
@@ -1485,7 +1485,7 @@ asmlinkage void do_msa(struct pt_regs *regs)
1485 1485
1486 err = enable_restore_fp_context(1); 1486 err = enable_restore_fp_context(1);
1487 if (err) 1487 if (err)
1488 force_sig(SIGILL, current); 1488 force_sig(SIGILL);
1489out: 1489out:
1490 exception_exit(prev_state); 1490 exception_exit(prev_state);
1491} 1491}
@@ -1495,7 +1495,7 @@ asmlinkage void do_mdmx(struct pt_regs *regs)
1495 enum ctx_state prev_state; 1495 enum ctx_state prev_state;
1496 1496
1497 prev_state = exception_enter(); 1497 prev_state = exception_enter();
1498 force_sig(SIGILL, current); 1498 force_sig(SIGILL);
1499 exception_exit(prev_state); 1499 exception_exit(prev_state);
1500} 1500}
1501 1501
@@ -1592,7 +1592,7 @@ asmlinkage void do_mt(struct pt_regs *regs)
1592 } 1592 }
1593 die_if_kernel("MIPS MT Thread exception in kernel", regs); 1593 die_if_kernel("MIPS MT Thread exception in kernel", regs);
1594 1594
1595 force_sig(SIGILL, current); 1595 force_sig(SIGILL);
1596} 1596}
1597 1597
1598 1598
@@ -1601,7 +1601,7 @@ asmlinkage void do_dsp(struct pt_regs *regs)
1601 if (cpu_has_dsp) 1601 if (cpu_has_dsp)
1602 panic("Unexpected DSP exception"); 1602 panic("Unexpected DSP exception");
1603 1603
1604 force_sig(SIGILL, current); 1604 force_sig(SIGILL);
1605} 1605}
1606 1606
1607asmlinkage void do_reserved(struct pt_regs *regs) 1607asmlinkage void do_reserved(struct pt_regs *regs)
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
index 76e33f940971..92bd2b0f0548 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -1365,20 +1365,20 @@ fault:
1365 return; 1365 return;
1366 1366
1367 die_if_kernel("Unhandled kernel unaligned access", regs); 1367 die_if_kernel("Unhandled kernel unaligned access", regs);
1368 force_sig(SIGSEGV, current); 1368 force_sig(SIGSEGV);
1369 1369
1370 return; 1370 return;
1371 1371
1372sigbus: 1372sigbus:
1373 die_if_kernel("Unhandled kernel unaligned access", regs); 1373 die_if_kernel("Unhandled kernel unaligned access", regs);
1374 force_sig(SIGBUS, current); 1374 force_sig(SIGBUS);
1375 1375
1376 return; 1376 return;
1377 1377
1378sigill: 1378sigill:
1379 die_if_kernel 1379 die_if_kernel
1380 ("Unhandled kernel unaligned access or invalid instruction", regs); 1380 ("Unhandled kernel unaligned access or invalid instruction", regs);
1381 force_sig(SIGILL, current); 1381 force_sig(SIGILL);
1382} 1382}
1383 1383
1384/* Recode table from 16-bit register notation to 32-bit GPR. */ 1384/* Recode table from 16-bit register notation to 32-bit GPR. */
@@ -1991,20 +1991,20 @@ fault:
1991 return; 1991 return;
1992 1992
1993 die_if_kernel("Unhandled kernel unaligned access", regs); 1993 die_if_kernel("Unhandled kernel unaligned access", regs);
1994 force_sig(SIGSEGV, current); 1994 force_sig(SIGSEGV);
1995 1995
1996 return; 1996 return;
1997 1997
1998sigbus: 1998sigbus:
1999 die_if_kernel("Unhandled kernel unaligned access", regs); 1999 die_if_kernel("Unhandled kernel unaligned access", regs);
2000 force_sig(SIGBUS, current); 2000 force_sig(SIGBUS);
2001 2001
2002 return; 2002 return;
2003 2003
2004sigill: 2004sigill:
2005 die_if_kernel 2005 die_if_kernel
2006 ("Unhandled kernel unaligned access or invalid instruction", regs); 2006 ("Unhandled kernel unaligned access or invalid instruction", regs);
2007 force_sig(SIGILL, current); 2007 force_sig(SIGILL);
2008} 2008}
2009 2009
2010static void emulate_load_store_MIPS16e(struct pt_regs *regs, void __user * addr) 2010static void emulate_load_store_MIPS16e(struct pt_regs *regs, void __user * addr)
@@ -2271,20 +2271,20 @@ fault:
2271 return; 2271 return;
2272 2272
2273 die_if_kernel("Unhandled kernel unaligned access", regs); 2273 die_if_kernel("Unhandled kernel unaligned access", regs);
2274 force_sig(SIGSEGV, current); 2274 force_sig(SIGSEGV);
2275 2275
2276 return; 2276 return;
2277 2277
2278sigbus: 2278sigbus:
2279 die_if_kernel("Unhandled kernel unaligned access", regs); 2279 die_if_kernel("Unhandled kernel unaligned access", regs);
2280 force_sig(SIGBUS, current); 2280 force_sig(SIGBUS);
2281 2281
2282 return; 2282 return;
2283 2283
2284sigill: 2284sigill:
2285 die_if_kernel 2285 die_if_kernel
2286 ("Unhandled kernel unaligned access or invalid instruction", regs); 2286 ("Unhandled kernel unaligned access or invalid instruction", regs);
2287 force_sig(SIGILL, current); 2287 force_sig(SIGILL);
2288} 2288}
2289 2289
2290asmlinkage void do_ade(struct pt_regs *regs) 2290asmlinkage void do_ade(struct pt_regs *regs)
@@ -2364,7 +2364,7 @@ asmlinkage void do_ade(struct pt_regs *regs)
2364 2364
2365sigbus: 2365sigbus:
2366 die_if_kernel("Kernel unaligned instruction access", regs); 2366 die_if_kernel("Kernel unaligned instruction access", regs);
2367 force_sig(SIGBUS, current); 2367 force_sig(SIGBUS);
2368 2368
2369 /* 2369 /*
2370 * XXX On return from the signal handler we should advance the epc 2370 * XXX On return from the signal handler we should advance the epc
diff --git a/arch/mips/sgi-ip22/ip22-berr.c b/arch/mips/sgi-ip22/ip22-berr.c
index 34bb9801d5ff..dc0110a607a5 100644
--- a/arch/mips/sgi-ip22/ip22-berr.c
+++ b/arch/mips/sgi-ip22/ip22-berr.c
@@ -98,7 +98,7 @@ void ip22_be_interrupt(int irq)
98 field, regs->cp0_epc, field, regs->regs[31]); 98 field, regs->cp0_epc, field, regs->regs[31]);
99 /* Assume it would be too dangerous to continue ... */ 99 /* Assume it would be too dangerous to continue ... */
100 die_if_kernel("Oops", regs); 100 die_if_kernel("Oops", regs);
101 force_sig(SIGBUS, current); 101 force_sig(SIGBUS);
102} 102}
103 103
104static int ip22_be_handler(struct pt_regs *regs, int is_fixup) 104static int ip22_be_handler(struct pt_regs *regs, int is_fixup)
diff --git a/arch/mips/sgi-ip22/ip28-berr.c b/arch/mips/sgi-ip22/ip28-berr.c
index 082541d33161..c0cf7baee36d 100644
--- a/arch/mips/sgi-ip22/ip28-berr.c
+++ b/arch/mips/sgi-ip22/ip28-berr.c
@@ -462,7 +462,7 @@ void ip22_be_interrupt(int irq)
462 if (ip28_be_interrupt(regs) != MIPS_BE_DISCARD) { 462 if (ip28_be_interrupt(regs) != MIPS_BE_DISCARD) {
463 /* Assume it would be too dangerous to continue ... */ 463 /* Assume it would be too dangerous to continue ... */
464 die_if_kernel("Oops", regs); 464 die_if_kernel("Oops", regs);
465 force_sig(SIGBUS, current); 465 force_sig(SIGBUS);
466 } else if (debug_be_interrupt) 466 } else if (debug_be_interrupt)
467 show_regs(regs); 467 show_regs(regs);
468} 468}
diff --git a/arch/mips/sgi-ip27/ip27-berr.c b/arch/mips/sgi-ip27/ip27-berr.c
index 83efe03d5c60..73ad29b180fb 100644
--- a/arch/mips/sgi-ip27/ip27-berr.c
+++ b/arch/mips/sgi-ip27/ip27-berr.c
@@ -74,7 +74,7 @@ int ip27_be_handler(struct pt_regs *regs, int is_fixup)
74 show_regs(regs); 74 show_regs(regs);
75 dump_tlb_all(); 75 dump_tlb_all();
76 while(1); 76 while(1);
77 force_sig(SIGBUS, current); 77 force_sig(SIGBUS);
78} 78}
79 79
80void __init ip27_be_init(void) 80void __init ip27_be_init(void)
diff --git a/arch/mips/sgi-ip32/ip32-berr.c b/arch/mips/sgi-ip32/ip32-berr.c
index c1f12a9cf305..c860f95ab7ed 100644
--- a/arch/mips/sgi-ip32/ip32-berr.c
+++ b/arch/mips/sgi-ip32/ip32-berr.c
@@ -29,7 +29,7 @@ static int ip32_be_handler(struct pt_regs *regs, int is_fixup)
29 show_regs(regs); 29 show_regs(regs);
30 dump_tlb_all(); 30 dump_tlb_all();
31 while(1); 31 while(1);
32 force_sig(SIGBUS, current); 32 force_sig(SIGBUS);
33} 33}
34 34
35void __init ip32_be_init(void) 35void __init ip32_be_init(void)
diff --git a/arch/nds32/kernel/signal.c b/arch/nds32/kernel/signal.c
index 5f7660aa2d68..fe61513982b4 100644
--- a/arch/nds32/kernel/signal.c
+++ b/arch/nds32/kernel/signal.c
@@ -163,7 +163,7 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
163 return regs->uregs[0]; 163 return regs->uregs[0];
164 164
165badframe: 165badframe:
166 force_sig(SIGSEGV, current); 166 force_sig(SIGSEGV);
167 return 0; 167 return 0;
168} 168}
169 169
diff --git a/arch/nds32/kernel/traps.c b/arch/nds32/kernel/traps.c
index 5aa7c17da27a..8d84b8b30eb6 100644
--- a/arch/nds32/kernel/traps.c
+++ b/arch/nds32/kernel/traps.c
@@ -288,7 +288,7 @@ void unhandled_interruption(struct pt_regs *regs)
288 show_regs(regs); 288 show_regs(regs);
289 if (!user_mode(regs)) 289 if (!user_mode(regs))
290 do_exit(SIGKILL); 290 do_exit(SIGKILL);
291 force_sig(SIGKILL, current); 291 force_sig(SIGKILL);
292} 292}
293 293
294void unhandled_exceptions(unsigned long entry, unsigned long addr, 294void unhandled_exceptions(unsigned long entry, unsigned long addr,
@@ -299,7 +299,7 @@ void unhandled_exceptions(unsigned long entry, unsigned long addr,
299 show_regs(regs); 299 show_regs(regs);
300 if (!user_mode(regs)) 300 if (!user_mode(regs))
301 do_exit(SIGKILL); 301 do_exit(SIGKILL);
302 force_sig(SIGKILL, current); 302 force_sig(SIGKILL);
303} 303}
304 304
305extern int do_page_fault(unsigned long entry, unsigned long addr, 305extern int do_page_fault(unsigned long entry, unsigned long addr,
@@ -326,7 +326,7 @@ void do_revinsn(struct pt_regs *regs)
326 show_regs(regs); 326 show_regs(regs);
327 if (!user_mode(regs)) 327 if (!user_mode(regs))
328 do_exit(SIGILL); 328 do_exit(SIGILL);
329 force_sig(SIGILL, current); 329 force_sig(SIGILL);
330} 330}
331 331
332#ifdef CONFIG_ALIGNMENT_TRAP 332#ifdef CONFIG_ALIGNMENT_TRAP
diff --git a/arch/nios2/kernel/signal.c b/arch/nios2/kernel/signal.c
index 9bf38531b189..a42dd09c6578 100644
--- a/arch/nios2/kernel/signal.c
+++ b/arch/nios2/kernel/signal.c
@@ -120,7 +120,7 @@ asmlinkage int do_rt_sigreturn(struct switch_stack *sw)
120 return rval; 120 return rval;
121 121
122badframe: 122badframe:
123 force_sig(SIGSEGV, current); 123 force_sig(SIGSEGV);
124 return 0; 124 return 0;
125} 125}
126 126
diff --git a/arch/openrisc/kernel/signal.c b/arch/openrisc/kernel/signal.c
index 5ac9d3b1d615..0337d1e1d2d5 100644
--- a/arch/openrisc/kernel/signal.c
+++ b/arch/openrisc/kernel/signal.c
@@ -99,7 +99,7 @@ asmlinkage long _sys_rt_sigreturn(struct pt_regs *regs)
99 return regs->gpr[11]; 99 return regs->gpr[11];
100 100
101badframe: 101badframe:
102 force_sig(SIGSEGV, current); 102 force_sig(SIGSEGV);
103 return 0; 103 return 0;
104} 104}
105 105
diff --git a/arch/openrisc/kernel/traps.c b/arch/openrisc/kernel/traps.c
index 6ed7293ef007..0fad2e46ff43 100644
--- a/arch/openrisc/kernel/traps.c
+++ b/arch/openrisc/kernel/traps.c
@@ -376,7 +376,7 @@ static inline void simulate_lwa(struct pt_regs *regs, unsigned long address,
376 376
377 if (get_user(value, lwa_addr)) { 377 if (get_user(value, lwa_addr)) {
378 if (user_mode(regs)) { 378 if (user_mode(regs)) {
379 force_sig(SIGSEGV, current); 379 force_sig(SIGSEGV);
380 return; 380 return;
381 } 381 }
382 382
@@ -423,7 +423,7 @@ static inline void simulate_swa(struct pt_regs *regs, unsigned long address,
423 423
424 if (put_user(regs->gpr[rb], vaddr)) { 424 if (put_user(regs->gpr[rb], vaddr)) {
425 if (user_mode(regs)) { 425 if (user_mode(regs)) {
426 force_sig(SIGSEGV, current); 426 force_sig(SIGSEGV);
427 return; 427 return;
428 } 428 }
429 429
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c
index 848c1934680b..02895a8f2c55 100644
--- a/arch/parisc/kernel/signal.c
+++ b/arch/parisc/kernel/signal.c
@@ -164,7 +164,7 @@ sys_rt_sigreturn(struct pt_regs *regs, int in_syscall)
164 164
165give_sigsegv: 165give_sigsegv:
166 DBG(1,"sys_rt_sigreturn: Sending SIGSEGV\n"); 166 DBG(1,"sys_rt_sigreturn: Sending SIGSEGV\n");
167 force_sig(SIGSEGV, current); 167 force_sig(SIGSEGV);
168 return; 168 return;
169} 169}
170 170
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index ede4f04281ae..fd48cdc0a4ff 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -1249,7 +1249,7 @@ SYSCALL_DEFINE0(rt_sigreturn)
1249 current->comm, current->pid, 1249 current->comm, current->pid,
1250 rt_sf, regs->nip, regs->link); 1250 rt_sf, regs->nip, regs->link);
1251 1251
1252 force_sig(SIGSEGV, current); 1252 force_sig(SIGSEGV);
1253 return 0; 1253 return 0;
1254} 1254}
1255 1255
@@ -1338,7 +1338,7 @@ SYSCALL_DEFINE3(debug_setcontext, struct ucontext __user *, ctx,
1338 current->comm, current->pid, 1338 current->comm, current->pid,
1339 ctx, regs->nip, regs->link); 1339 ctx, regs->nip, regs->link);
1340 1340
1341 force_sig(SIGSEGV, current); 1341 force_sig(SIGSEGV);
1342 goto out; 1342 goto out;
1343 } 1343 }
1344 1344
@@ -1516,6 +1516,6 @@ badframe:
1516 current->comm, current->pid, 1516 current->comm, current->pid,
1517 addr, regs->nip, regs->link); 1517 addr, regs->nip, regs->link);
1518 1518
1519 force_sig(SIGSEGV, current); 1519 force_sig(SIGSEGV);
1520 return 0; 1520 return 0;
1521} 1521}
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
index 06c299ef6132..ea08d848f558 100644
--- a/arch/powerpc/kernel/signal_64.c
+++ b/arch/powerpc/kernel/signal_64.c
@@ -812,7 +812,7 @@ badframe:
812 current->comm, current->pid, "rt_sigreturn", 812 current->comm, current->pid, "rt_sigreturn",
813 (long)uc, regs->nip, regs->link); 813 (long)uc, regs->nip, regs->link);
814 814
815 force_sig(SIGSEGV, current); 815 force_sig(SIGSEGV);
816 return 0; 816 return 0;
817} 817}
818 818
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c
index 07f82d7395ff..3f2380f40f99 100644
--- a/arch/powerpc/platforms/cell/spufs/run.c
+++ b/arch/powerpc/platforms/cell/spufs/run.c
@@ -443,7 +443,7 @@ long spufs_run_spu(struct spu_context *ctx, u32 *npc, u32 *event)
443 443
444 else if (unlikely((status & SPU_STATUS_STOPPED_BY_STOP) 444 else if (unlikely((status & SPU_STATUS_STOPPED_BY_STOP)
445 && (status >> SPU_STOP_STATUS_SHIFT) == 0x3fff)) { 445 && (status >> SPU_STOP_STATUS_SHIFT) == 0x3fff)) {
446 force_sig(SIGTRAP, current); 446 force_sig(SIGTRAP);
447 ret = -ERESTARTSYS; 447 ret = -ERESTARTSYS;
448 } 448 }
449 449
diff --git a/arch/riscv/kernel/signal.c b/arch/riscv/kernel/signal.c
index 804d6ee4f3c5..50c0e64372b0 100644
--- a/arch/riscv/kernel/signal.c
+++ b/arch/riscv/kernel/signal.c
@@ -139,7 +139,7 @@ badframe:
139 task->comm, task_pid_nr(task), __func__, 139 task->comm, task_pid_nr(task), __func__,
140 frame, (void *)regs->sepc, (void *)regs->sp); 140 frame, (void *)regs->sepc, (void *)regs->sp);
141 } 141 }
142 force_sig(SIGSEGV, task); 142 force_sig(SIGSEGV);
143 return 0; 143 return 0;
144} 144}
145 145
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index 6f2a193ccccc..38d4bdbc34b9 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -194,7 +194,7 @@ COMPAT_SYSCALL_DEFINE0(sigreturn)
194 load_sigregs(); 194 load_sigregs();
195 return regs->gprs[2]; 195 return regs->gprs[2];
196badframe: 196badframe:
197 force_sig(SIGSEGV, current); 197 force_sig(SIGSEGV);
198 return 0; 198 return 0;
199} 199}
200 200
@@ -217,7 +217,7 @@ COMPAT_SYSCALL_DEFINE0(rt_sigreturn)
217 load_sigregs(); 217 load_sigregs();
218 return regs->gprs[2]; 218 return regs->gprs[2];
219badframe: 219badframe:
220 force_sig(SIGSEGV, current); 220 force_sig(SIGSEGV);
221 return 0; 221 return 0;
222} 222}
223 223
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
index 22f08245aa5d..e6fca5498e1f 100644
--- a/arch/s390/kernel/signal.c
+++ b/arch/s390/kernel/signal.c
@@ -232,7 +232,7 @@ SYSCALL_DEFINE0(sigreturn)
232 load_sigregs(); 232 load_sigregs();
233 return regs->gprs[2]; 233 return regs->gprs[2];
234badframe: 234badframe:
235 force_sig(SIGSEGV, current); 235 force_sig(SIGSEGV);
236 return 0; 236 return 0;
237} 237}
238 238
@@ -256,7 +256,7 @@ SYSCALL_DEFINE0(rt_sigreturn)
256 load_sigregs(); 256 load_sigregs();
257 return regs->gprs[2]; 257 return regs->gprs[2];
258badframe: 258badframe:
259 force_sig(SIGSEGV, current); 259 force_sig(SIGSEGV);
260 return 0; 260 return 0;
261} 261}
262 262
diff --git a/arch/sh/kernel/cpu/sh2a/fpu.c b/arch/sh/kernel/cpu/sh2a/fpu.c
index 74b48db86dd7..0bcff11a4843 100644
--- a/arch/sh/kernel/cpu/sh2a/fpu.c
+++ b/arch/sh/kernel/cpu/sh2a/fpu.c
@@ -568,5 +568,5 @@ BUILD_TRAP_HANDLER(fpu_error)
568 return; 568 return;
569 } 569 }
570 570
571 force_sig(SIGFPE, tsk); 571 force_sig(SIGFPE);
572} 572}
diff --git a/arch/sh/kernel/cpu/sh4/fpu.c b/arch/sh/kernel/cpu/sh4/fpu.c
index 1ff56e5ba990..03ffd8cdf542 100644
--- a/arch/sh/kernel/cpu/sh4/fpu.c
+++ b/arch/sh/kernel/cpu/sh4/fpu.c
@@ -421,5 +421,5 @@ BUILD_TRAP_HANDLER(fpu_error)
421 } 421 }
422 } 422 }
423 423
424 force_sig(SIGFPE, tsk); 424 force_sig(SIGFPE);
425} 425}
diff --git a/arch/sh/kernel/cpu/sh5/fpu.c b/arch/sh/kernel/cpu/sh5/fpu.c
index 9218d9ed787e..3966b5ee8e93 100644
--- a/arch/sh/kernel/cpu/sh5/fpu.c
+++ b/arch/sh/kernel/cpu/sh5/fpu.c
@@ -100,9 +100,7 @@ void restore_fpu(struct task_struct *tsk)
100 100
101asmlinkage void do_fpu_error(unsigned long ex, struct pt_regs *regs) 101asmlinkage void do_fpu_error(unsigned long ex, struct pt_regs *regs)
102{ 102{
103 struct task_struct *tsk = current;
104
105 regs->pc += 4; 103 regs->pc += 4;
106 104
107 force_sig(SIGFPE, tsk); 105 force_sig(SIGFPE);
108} 106}
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c
index 3390349ff976..11085e48eaa6 100644
--- a/arch/sh/kernel/ptrace_64.c
+++ b/arch/sh/kernel/ptrace_64.c
@@ -550,7 +550,7 @@ asmlinkage void do_single_step(unsigned long long vec, struct pt_regs *regs)
550 continually stepping. */ 550 continually stepping. */
551 local_irq_enable(); 551 local_irq_enable();
552 regs->sr &= ~SR_SSTEP; 552 regs->sr &= ~SR_SSTEP;
553 force_sig(SIGTRAP, current); 553 force_sig(SIGTRAP);
554} 554}
555 555
556/* Called with interrupts disabled */ 556/* Called with interrupts disabled */
@@ -561,7 +561,7 @@ BUILD_TRAP_HANDLER(breakpoint)
561 /* We need to forward step the PC, to counteract the backstep done 561 /* We need to forward step the PC, to counteract the backstep done
562 in signal.c. */ 562 in signal.c. */
563 local_irq_enable(); 563 local_irq_enable();
564 force_sig(SIGTRAP, current); 564 force_sig(SIGTRAP);
565 regs->pc += 4; 565 regs->pc += 4;
566} 566}
567 567
diff --git a/arch/sh/kernel/signal_32.c b/arch/sh/kernel/signal_32.c
index 2a2121ba8ebe..24473fa6c3b6 100644
--- a/arch/sh/kernel/signal_32.c
+++ b/arch/sh/kernel/signal_32.c
@@ -176,7 +176,7 @@ asmlinkage int sys_sigreturn(void)
176 return r0; 176 return r0;
177 177
178badframe: 178badframe:
179 force_sig(SIGSEGV, current); 179 force_sig(SIGSEGV);
180 return 0; 180 return 0;
181} 181}
182 182
@@ -207,7 +207,7 @@ asmlinkage int sys_rt_sigreturn(void)
207 return r0; 207 return r0;
208 208
209badframe: 209badframe:
210 force_sig(SIGSEGV, current); 210 force_sig(SIGSEGV);
211 return 0; 211 return 0;
212} 212}
213 213
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c
index f1f1598879c2..b9aaa9266b34 100644
--- a/arch/sh/kernel/signal_64.c
+++ b/arch/sh/kernel/signal_64.c
@@ -277,7 +277,7 @@ asmlinkage int sys_sigreturn(unsigned long r2, unsigned long r3,
277 return (int) ret; 277 return (int) ret;
278 278
279badframe: 279badframe:
280 force_sig(SIGSEGV, current); 280 force_sig(SIGSEGV);
281 return 0; 281 return 0;
282} 282}
283 283
@@ -311,7 +311,7 @@ asmlinkage int sys_rt_sigreturn(unsigned long r2, unsigned long r3,
311 return (int) ret; 311 return (int) ret;
312 312
313badframe: 313badframe:
314 force_sig(SIGSEGV, current); 314 force_sig(SIGSEGV);
315 return 0; 315 return 0;
316} 316}
317 317
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c
index 8b49cced663d..63cf17bc760d 100644
--- a/arch/sh/kernel/traps.c
+++ b/arch/sh/kernel/traps.c
@@ -141,7 +141,7 @@ BUILD_TRAP_HANDLER(debug)
141 SIGTRAP) == NOTIFY_STOP) 141 SIGTRAP) == NOTIFY_STOP)
142 return; 142 return;
143 143
144 force_sig(SIGTRAP, current); 144 force_sig(SIGTRAP);
145} 145}
146 146
147/* 147/*
@@ -167,7 +167,7 @@ BUILD_TRAP_HANDLER(bug)
167 } 167 }
168#endif 168#endif
169 169
170 force_sig(SIGTRAP, current); 170 force_sig(SIGTRAP);
171} 171}
172 172
173BUILD_TRAP_HANDLER(nmi) 173BUILD_TRAP_HANDLER(nmi)
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c
index f2a18b5fafd8..bd5568c8e7f0 100644
--- a/arch/sh/kernel/traps_32.c
+++ b/arch/sh/kernel/traps_32.c
@@ -611,7 +611,6 @@ asmlinkage void do_reserved_inst(void)
611{ 611{
612 struct pt_regs *regs = current_pt_regs(); 612 struct pt_regs *regs = current_pt_regs();
613 unsigned long error_code; 613 unsigned long error_code;
614 struct task_struct *tsk = current;
615 614
616#ifdef CONFIG_SH_FPU_EMU 615#ifdef CONFIG_SH_FPU_EMU
617 unsigned short inst = 0; 616 unsigned short inst = 0;
@@ -633,7 +632,7 @@ asmlinkage void do_reserved_inst(void)
633 /* Enable DSP mode, and restart instruction. */ 632 /* Enable DSP mode, and restart instruction. */
634 regs->sr |= SR_DSP; 633 regs->sr |= SR_DSP;
635 /* Save DSP mode */ 634 /* Save DSP mode */
636 tsk->thread.dsp_status.status |= SR_DSP; 635 current->thread.dsp_status.status |= SR_DSP;
637 return; 636 return;
638 } 637 }
639#endif 638#endif
@@ -641,7 +640,7 @@ asmlinkage void do_reserved_inst(void)
641 error_code = lookup_exception_vector(); 640 error_code = lookup_exception_vector();
642 641
643 local_irq_enable(); 642 local_irq_enable();
644 force_sig(SIGILL, tsk); 643 force_sig(SIGILL);
645 die_if_no_fixup("reserved instruction", regs, error_code); 644 die_if_no_fixup("reserved instruction", regs, error_code);
646} 645}
647 646
@@ -697,7 +696,6 @@ asmlinkage void do_illegal_slot_inst(void)
697{ 696{
698 struct pt_regs *regs = current_pt_regs(); 697 struct pt_regs *regs = current_pt_regs();
699 unsigned long inst; 698 unsigned long inst;
700 struct task_struct *tsk = current;
701 699
702 if (kprobe_handle_illslot(regs->pc) == 0) 700 if (kprobe_handle_illslot(regs->pc) == 0)
703 return; 701 return;
@@ -716,7 +714,7 @@ asmlinkage void do_illegal_slot_inst(void)
716 inst = lookup_exception_vector(); 714 inst = lookup_exception_vector();
717 715
718 local_irq_enable(); 716 local_irq_enable();
719 force_sig(SIGILL, tsk); 717 force_sig(SIGILL);
720 die_if_no_fixup("illegal slot instruction", regs, inst); 718 die_if_no_fixup("illegal slot instruction", regs, inst);
721} 719}
722 720
diff --git a/arch/sh/kernel/traps_64.c b/arch/sh/kernel/traps_64.c
index 8ce90a7da67d..37046f3a26d3 100644
--- a/arch/sh/kernel/traps_64.c
+++ b/arch/sh/kernel/traps_64.c
@@ -599,7 +599,7 @@ static void do_unhandled_exception(int signr, char *str, unsigned long error,
599 struct pt_regs *regs) 599 struct pt_regs *regs)
600{ 600{
601 if (user_mode(regs)) 601 if (user_mode(regs))
602 force_sig(signr, current); 602 force_sig(signr);
603 603
604 die_if_no_fixup(str, regs, error); 604 die_if_no_fixup(str, regs, error);
605} 605}
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
index 59eaf6227af1..c4bccd97f3cf 100644
--- a/arch/sparc/kernel/process_64.c
+++ b/arch/sparc/kernel/process_64.c
@@ -570,7 +570,7 @@ void fault_in_user_windows(struct pt_regs *regs)
570 570
571barf: 571barf:
572 set_thread_wsaved(window + 1); 572 set_thread_wsaved(window + 1);
573 force_sig(SIGSEGV, current); 573 force_sig(SIGSEGV);
574} 574}
575 575
576asmlinkage long sparc_do_fork(unsigned long clone_flags, 576asmlinkage long sparc_do_fork(unsigned long clone_flags,
diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
index fb431d47a532..a237810aa9f4 100644
--- a/arch/sparc/kernel/signal32.c
+++ b/arch/sparc/kernel/signal32.c
@@ -170,7 +170,7 @@ void do_sigreturn32(struct pt_regs *regs)
170 return; 170 return;
171 171
172segv: 172segv:
173 force_sig(SIGSEGV, current); 173 force_sig(SIGSEGV);
174} 174}
175 175
176asmlinkage void do_rt_sigreturn32(struct pt_regs *regs) 176asmlinkage void do_rt_sigreturn32(struct pt_regs *regs)
@@ -256,7 +256,7 @@ asmlinkage void do_rt_sigreturn32(struct pt_regs *regs)
256 set_current_blocked(&set); 256 set_current_blocked(&set);
257 return; 257 return;
258segv: 258segv:
259 force_sig(SIGSEGV, current); 259 force_sig(SIGSEGV);
260} 260}
261 261
262static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) 262static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize)
diff --git a/arch/sparc/kernel/signal_32.c b/arch/sparc/kernel/signal_32.c
index 83953780ca01..42c3de313fd6 100644
--- a/arch/sparc/kernel/signal_32.c
+++ b/arch/sparc/kernel/signal_32.c
@@ -137,7 +137,7 @@ asmlinkage void do_sigreturn(struct pt_regs *regs)
137 return; 137 return;
138 138
139segv_and_exit: 139segv_and_exit:
140 force_sig(SIGSEGV, current); 140 force_sig(SIGSEGV);
141} 141}
142 142
143asmlinkage void do_rt_sigreturn(struct pt_regs *regs) 143asmlinkage void do_rt_sigreturn(struct pt_regs *regs)
@@ -196,7 +196,7 @@ asmlinkage void do_rt_sigreturn(struct pt_regs *regs)
196 set_current_blocked(&set); 196 set_current_blocked(&set);
197 return; 197 return;
198segv: 198segv:
199 force_sig(SIGSEGV, current); 199 force_sig(SIGSEGV);
200} 200}
201 201
202static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) 202static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize)
diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
index 9d50190cf312..69ae814b7e90 100644
--- a/arch/sparc/kernel/signal_64.c
+++ b/arch/sparc/kernel/signal_64.c
@@ -134,7 +134,7 @@ out:
134 exception_exit(prev_state); 134 exception_exit(prev_state);
135 return; 135 return;
136do_sigsegv: 136do_sigsegv:
137 force_sig(SIGSEGV, current); 137 force_sig(SIGSEGV);
138 goto out; 138 goto out;
139} 139}
140 140
@@ -228,7 +228,7 @@ out:
228 exception_exit(prev_state); 228 exception_exit(prev_state);
229 return; 229 return;
230do_sigsegv: 230do_sigsegv:
231 force_sig(SIGSEGV, current); 231 force_sig(SIGSEGV);
232 goto out; 232 goto out;
233} 233}
234 234
@@ -320,7 +320,7 @@ void do_rt_sigreturn(struct pt_regs *regs)
320 set_current_blocked(&set); 320 set_current_blocked(&set);
321 return; 321 return;
322segv: 322segv:
323 force_sig(SIGSEGV, current); 323 force_sig(SIGSEGV);
324} 324}
325 325
326static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) 326static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize)
diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
index 0cd02a64a451..12bfc7e215ca 100644
--- a/arch/sparc/kernel/traps_64.c
+++ b/arch/sparc/kernel/traps_64.c
@@ -2181,7 +2181,7 @@ bool sun4v_nonresum_error_user_handled(struct pt_regs *regs,
2181 addr += PAGE_SIZE; 2181 addr += PAGE_SIZE;
2182 } 2182 }
2183 } 2183 }
2184 force_sig(SIGKILL, current); 2184 force_sig(SIGKILL);
2185 2185
2186 return true; 2186 return true;
2187 } 2187 }
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
index b0440b0edd97..2731faf415ba 100644
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -425,7 +425,7 @@ do_sigbus:
425static void check_stack_aligned(unsigned long sp) 425static void check_stack_aligned(unsigned long sp)
426{ 426{
427 if (sp & 0x7UL) 427 if (sp & 0x7UL)
428 force_sig(SIGILL, current); 428 force_sig(SIGILL);
429} 429}
430 430
431void window_overflow_fault(void) 431void window_overflow_fault(void)
diff --git a/arch/um/kernel/exec.c b/arch/um/kernel/exec.c
index a43d42bf0a86..783b9247161f 100644
--- a/arch/um/kernel/exec.c
+++ b/arch/um/kernel/exec.c
@@ -32,7 +32,7 @@ void flush_thread(void)
32 if (ret) { 32 if (ret) {
33 printk(KERN_ERR "flush_thread - clearing address space failed, " 33 printk(KERN_ERR "flush_thread - clearing address space failed, "
34 "err = %d\n", ret); 34 "err = %d\n", ret);
35 force_sig(SIGKILL, current); 35 force_sig(SIGKILL);
36 } 36 }
37 get_safe_registers(current_pt_regs()->regs.gp, 37 get_safe_registers(current_pt_regs()->regs.gp,
38 current_pt_regs()->regs.fp); 38 current_pt_regs()->regs.fp);
diff --git a/arch/um/kernel/tlb.c b/arch/um/kernel/tlb.c
index 8347161c2ae0..45f739bf302f 100644
--- a/arch/um/kernel/tlb.c
+++ b/arch/um/kernel/tlb.c
@@ -329,7 +329,7 @@ void fix_range_common(struct mm_struct *mm, unsigned long start_addr,
329 "process: %d\n", task_tgid_vnr(current)); 329 "process: %d\n", task_tgid_vnr(current));
330 /* We are under mmap_sem, release it such that current can terminate */ 330 /* We are under mmap_sem, release it such that current can terminate */
331 up_write(&current->mm->mmap_sem); 331 up_write(&current->mm->mmap_sem);
332 force_sig(SIGKILL, current); 332 force_sig(SIGKILL);
333 do_signal(&current->thread.regs); 333 do_signal(&current->thread.regs);
334 } 334 }
335} 335}
@@ -487,7 +487,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long address)
487 487
488kill: 488kill:
489 printk(KERN_ERR "Failed to flush page for address 0x%lx\n", address); 489 printk(KERN_ERR "Failed to flush page for address 0x%lx\n", address);
490 force_sig(SIGKILL, current); 490 force_sig(SIGKILL);
491} 491}
492 492
493pgd_t *pgd_offset_proc(struct mm_struct *mm, unsigned long address) 493pgd_t *pgd_offset_proc(struct mm_struct *mm, unsigned long address)
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index 646059402ab3..1c943c66063f 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -309,7 +309,7 @@ void relay_signal(int sig, struct siginfo *si, struct uml_pt_regs *regs)
309 } else { 309 } else {
310 printk(KERN_ERR "Attempted to relay unknown signal %d (si_code = %d) with errno %d\n", 310 printk(KERN_ERR "Attempted to relay unknown signal %d (si_code = %d) with errno %d\n",
311 sig, code, err); 311 sig, code, err);
312 force_sig(sig, current); 312 force_sig(sig);
313 } 313 }
314} 314}
315 315
diff --git a/arch/unicore32/kernel/signal.c b/arch/unicore32/kernel/signal.c
index 75f27dc68bd0..070fa58d23a9 100644
--- a/arch/unicore32/kernel/signal.c
+++ b/arch/unicore32/kernel/signal.c
@@ -129,7 +129,7 @@ asmlinkage int __sys_rt_sigreturn(struct pt_regs *regs)
129 return regs->UCreg_00; 129 return regs->UCreg_00;
130 130
131badframe: 131badframe:
132 force_sig(SIGSEGV, current); 132 force_sig(SIGSEGV);
133 return 0; 133 return 0;
134} 134}
135 135
diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c
index d9d81ad7a400..7ea87f4ad0b7 100644
--- a/arch/x86/entry/vsyscall/vsyscall_64.c
+++ b/arch/x86/entry/vsyscall/vsyscall_64.c
@@ -268,7 +268,7 @@ do_ret:
268 return true; 268 return true;
269 269
270sigsegv: 270sigsegv:
271 force_sig(SIGSEGV, current); 271 force_sig(SIGSEGV);
272 return true; 272 return true;
273} 273}
274 274
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 5112a50e6486..e11ac124dd37 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -1329,7 +1329,7 @@ void do_machine_check(struct pt_regs *regs, long error_code)
1329 local_irq_enable(); 1329 local_irq_enable();
1330 1330
1331 if (kill_it || do_memory_failure(&m)) 1331 if (kill_it || do_memory_failure(&m))
1332 force_sig(SIGBUS, current); 1332 force_sig(SIGBUS);
1333 local_irq_disable(); 1333 local_irq_disable();
1334 ist_end_non_atomic(); 1334 ist_end_non_atomic();
1335 } else { 1335 } else {
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index 364813cea647..7cf508f78c8c 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -857,7 +857,7 @@ void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
857 pr_cont("\n"); 857 pr_cont("\n");
858 } 858 }
859 859
860 force_sig(SIGSEGV, me); 860 force_sig(SIGSEGV);
861} 861}
862 862
863#ifdef CONFIG_X86_X32_ABI 863#ifdef CONFIG_X86_X32_ABI
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 8b6d03e55d2f..e54f0cad4b2e 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -254,7 +254,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
254 show_signal(tsk, signr, "trap ", str, regs, error_code); 254 show_signal(tsk, signr, "trap ", str, regs, error_code);
255 255
256 if (!sicode) 256 if (!sicode)
257 force_sig(signr, tsk); 257 force_sig(signr);
258 else 258 else
259 force_sig_fault(signr, sicode, addr, tsk); 259 force_sig_fault(signr, sicode, addr, tsk);
260} 260}
@@ -566,7 +566,7 @@ do_general_protection(struct pt_regs *regs, long error_code)
566 566
567 show_signal(tsk, SIGSEGV, "", desc, regs, error_code); 567 show_signal(tsk, SIGSEGV, "", desc, regs, error_code);
568 568
569 force_sig(SIGSEGV, tsk); 569 force_sig(SIGSEGV);
570} 570}
571NOKPROBE_SYMBOL(do_general_protection); 571NOKPROBE_SYMBOL(do_general_protection);
572 572
diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
index ccf03416e434..18239d5a8b53 100644
--- a/arch/x86/kernel/uprobes.c
+++ b/arch/x86/kernel/uprobes.c
@@ -1087,7 +1087,7 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs
1087 pr_err("return address clobbered: pid=%d, %%sp=%#lx, %%ip=%#lx\n", 1087 pr_err("return address clobbered: pid=%d, %%sp=%#lx, %%ip=%#lx\n",
1088 current->pid, regs->sp, regs->ip); 1088 current->pid, regs->sp, regs->ip);
1089 1089
1090 force_sig(SIGSEGV, current); 1090 force_sig(SIGSEGV);
1091 } 1091 }
1092 1092
1093 return -1; 1093 return -1;
diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index 6a38717d179c..a76c12b38e92 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -583,7 +583,7 @@ int handle_vm86_trap(struct kernel_vm86_regs *regs, long error_code, int trapno)
583 return 1; /* we let this handle by the calling routine */ 583 return 1; /* we let this handle by the calling routine */
584 current->thread.trap_nr = trapno; 584 current->thread.trap_nr = trapno;
585 current->thread.error_code = error_code; 585 current->thread.error_code = error_code;
586 force_sig(SIGTRAP, current); 586 force_sig(SIGTRAP);
587 return 0; 587 return 0;
588} 588}
589 589
diff --git a/arch/x86/mm/mpx.c b/arch/x86/mm/mpx.c
index 0d1c47cbbdd6..895fb7a9294d 100644
--- a/arch/x86/mm/mpx.c
+++ b/arch/x86/mm/mpx.c
@@ -912,7 +912,7 @@ void mpx_notify_unmap(struct mm_struct *mm, unsigned long start,
912 912
913 ret = mpx_unmap_tables(mm, start, end); 913 ret = mpx_unmap_tables(mm, start, end);
914 if (ret) 914 if (ret)
915 force_sig(SIGSEGV, current); 915 force_sig(SIGSEGV);
916} 916}
917 917
918/* MPX cannot handle addresses above 47 bits yet. */ 918/* MPX cannot handle addresses above 47 bits yet. */
diff --git a/arch/x86/um/signal.c b/arch/x86/um/signal.c
index 8b4a71efe7ee..7c11c9e5d7ea 100644
--- a/arch/x86/um/signal.c
+++ b/arch/x86/um/signal.c
@@ -471,7 +471,7 @@ long sys_sigreturn(void)
471 return PT_REGS_SYSCALL_RET(&current->thread.regs); 471 return PT_REGS_SYSCALL_RET(&current->thread.regs);
472 472
473 segfault: 473 segfault:
474 force_sig(SIGSEGV, current); 474 force_sig(SIGSEGV);
475 return 0; 475 return 0;
476} 476}
477 477
@@ -577,6 +577,6 @@ long sys_rt_sigreturn(void)
577 return PT_REGS_SYSCALL_RET(&current->thread.regs); 577 return PT_REGS_SYSCALL_RET(&current->thread.regs);
578 578
579 segfault: 579 segfault:
580 force_sig(SIGSEGV, current); 580 force_sig(SIGSEGV);
581 return 0; 581 return 0;
582} 582}
diff --git a/arch/xtensa/kernel/signal.c b/arch/xtensa/kernel/signal.c
index dc22a238ed9c..fbedf2aba09d 100644
--- a/arch/xtensa/kernel/signal.c
+++ b/arch/xtensa/kernel/signal.c
@@ -270,7 +270,7 @@ asmlinkage long xtensa_rt_sigreturn(long a0, long a1, long a2, long a3,
270 return ret; 270 return ret;
271 271
272badframe: 272badframe:
273 force_sig(SIGSEGV, current); 273 force_sig(SIGSEGV);
274 return 0; 274 return 0;
275} 275}
276 276
diff --git a/arch/xtensa/kernel/traps.c b/arch/xtensa/kernel/traps.c
index 454d53096bc9..6f26b254091b 100644
--- a/arch/xtensa/kernel/traps.c
+++ b/arch/xtensa/kernel/traps.c
@@ -184,7 +184,7 @@ void do_unhandled(struct pt_regs *regs, unsigned long exccause)
184 "\tEXCCAUSE is %ld\n", 184 "\tEXCCAUSE is %ld\n",
185 current->comm, task_pid_nr(current), regs->pc, 185 current->comm, task_pid_nr(current), regs->pc,
186 exccause); 186 exccause);
187 force_sig(SIGILL, current); 187 force_sig(SIGILL);
188} 188}
189 189
190/* 190/*
@@ -306,7 +306,7 @@ do_illegal_instruction(struct pt_regs *regs)
306 306
307 pr_info_ratelimited("Illegal Instruction in '%s' (pid = %d, pc = %#010lx)\n", 307 pr_info_ratelimited("Illegal Instruction in '%s' (pid = %d, pc = %#010lx)\n",
308 current->comm, task_pid_nr(current), regs->pc); 308 current->comm, task_pid_nr(current), regs->pc);
309 force_sig(SIGILL, current); 309 force_sig(SIGILL);
310} 310}
311 311
312 312
@@ -354,7 +354,7 @@ do_debug(struct pt_regs *regs)
354 354
355 /* If in user mode, send SIGTRAP signal to current process */ 355 /* If in user mode, send SIGTRAP signal to current process */
356 356
357 force_sig(SIGTRAP, current); 357 force_sig(SIGTRAP);
358} 358}
359 359
360 360
diff --git a/drivers/misc/lkdtm/bugs.c b/drivers/misc/lkdtm/bugs.c
index 7eebbdfbcacd..86556adb1482 100644
--- a/drivers/misc/lkdtm/bugs.c
+++ b/drivers/misc/lkdtm/bugs.c
@@ -225,7 +225,7 @@ void lkdtm_CORRUPT_USER_DS(void)
225 set_fs(KERNEL_DS); 225 set_fs(KERNEL_DS);
226 226
227 /* Make sure we do not keep running with a KERNEL_DS! */ 227 /* Make sure we do not keep running with a KERNEL_DS! */
228 force_sig(SIGKILL, current); 228 force_sig(SIGKILL);
229} 229}
230 230
231/* Test that VMAP_STACK is actually allocating with a leading guard page */ 231/* Test that VMAP_STACK is actually allocating with a leading guard page */
diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h
index 8af3101da782..e9df3f0cce48 100644
--- a/include/linux/sched/signal.h
+++ b/include/linux/sched/signal.h
@@ -335,7 +335,7 @@ extern int kill_pgrp(struct pid *pid, int sig, int priv);
335extern int kill_pid(struct pid *pid, int sig, int priv); 335extern int kill_pid(struct pid *pid, int sig, int priv);
336extern __must_check bool do_notify_parent(struct task_struct *, int); 336extern __must_check bool do_notify_parent(struct task_struct *, int);
337extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent); 337extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent);
338extern void force_sig(int, struct task_struct *); 338extern void force_sig(int);
339extern int send_sig(int, struct task_struct *, int); 339extern int send_sig(int, struct task_struct *, int);
340extern int zap_other_threads(struct task_struct *p); 340extern int zap_other_threads(struct task_struct *p);
341extern struct sigqueue *sigqueue_alloc(void); 341extern struct sigqueue *sigqueue_alloc(void);
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index e2870fe1be5b..fd6e0f5ebfdf 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -266,7 +266,7 @@ static inline void addr_limit_user_check(void)
266 266
267 if (CHECK_DATA_CORRUPTION(!segment_eq(get_fs(), USER_DS), 267 if (CHECK_DATA_CORRUPTION(!segment_eq(get_fs(), USER_DS),
268 "Invalid address limit on user-mode return")) 268 "Invalid address limit on user-mode return"))
269 force_sig(SIGKILL, current); 269 force_sig(SIGKILL);
270 270
271#ifdef TIF_FSCHECK 271#ifdef TIF_FSCHECK
272 clear_thread_flag(TIF_FSCHECK); 272 clear_thread_flag(TIF_FSCHECK);
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
index 78f61bfc6b79..359122185cfb 100644
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
@@ -2112,7 +2112,7 @@ static void handle_trampoline(struct pt_regs *regs)
2112 2112
2113 sigill: 2113 sigill:
2114 uprobe_warn(current, "handle uretprobe, sending SIGILL."); 2114 uprobe_warn(current, "handle uretprobe, sending SIGILL.");
2115 force_sig(SIGILL, current); 2115 force_sig(SIGILL);
2116 2116
2117} 2117}
2118 2118
@@ -2228,7 +2228,7 @@ static void handle_singlestep(struct uprobe_task *utask, struct pt_regs *regs)
2228 2228
2229 if (unlikely(err)) { 2229 if (unlikely(err)) {
2230 uprobe_warn(current, "execute the probed insn, sending SIGILL."); 2230 uprobe_warn(current, "execute the probed insn, sending SIGILL.");
2231 force_sig(SIGILL, current); 2231 force_sig(SIGILL);
2232 } 2232 }
2233} 2233}
2234 2234
diff --git a/kernel/rseq.c b/kernel/rseq.c
index e1aa3ebee291..27c48eb7de40 100644
--- a/kernel/rseq.c
+++ b/kernel/rseq.c
@@ -296,7 +296,7 @@ void rseq_syscall(struct pt_regs *regs)
296 return; 296 return;
297 if (!access_ok(t->rseq, sizeof(*t->rseq)) || 297 if (!access_ok(t->rseq, sizeof(*t->rseq)) ||
298 rseq_get_rseq_cs(t, &rseq_cs) || in_rseq_cs(ip, &rseq_cs)) 298 rseq_get_rseq_cs(t, &rseq_cs) || in_rseq_cs(ip, &rseq_cs))
299 force_sig(SIGSEGV, t); 299 force_sig(SIGSEGV);
300} 300}
301 301
302#endif 302#endif
diff --git a/kernel/signal.c b/kernel/signal.c
index f7669d240ce4..20878c4c28c2 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1595,9 +1595,9 @@ send_sig(int sig, struct task_struct *p, int priv)
1595} 1595}
1596EXPORT_SYMBOL(send_sig); 1596EXPORT_SYMBOL(send_sig);
1597 1597
1598void force_sig(int sig, struct task_struct *p) 1598void force_sig(int sig)
1599{ 1599{
1600 force_sig_info(sig, SEND_SIG_PRIV, p); 1600 force_sig_info(sig, SEND_SIG_PRIV, current);
1601} 1601}
1602EXPORT_SYMBOL(force_sig); 1602EXPORT_SYMBOL(force_sig);
1603 1603
@@ -1617,7 +1617,7 @@ void force_sigsegv(int sig)
1617 p->sighand->action[sig - 1].sa.sa_handler = SIG_DFL; 1617 p->sighand->action[sig - 1].sa.sa_handler = SIG_DFL;
1618 spin_unlock_irqrestore(&p->sighand->siglock, flags); 1618 spin_unlock_irqrestore(&p->sighand->siglock, flags);
1619 } 1619 }
1620 force_sig(SIGSEGV, p); 1620 force_sig(SIGSEGV);
1621} 1621}
1622 1622
1623int force_sig_fault(int sig, int code, void __user *addr 1623int force_sig_fault(int sig, int code, void __user *addr
diff --git a/security/safesetid/lsm.c b/security/safesetid/lsm.c
index cecd38e2ac80..06d4259f9ab1 100644
--- a/security/safesetid/lsm.c
+++ b/security/safesetid/lsm.c
@@ -111,7 +111,7 @@ static int check_uid_transition(kuid_t parent, kuid_t child)
111 * that could arise from a missing whitelist entry preventing a 111 * that could arise from a missing whitelist entry preventing a
112 * privileged process from dropping to a lesser-privileged one. 112 * privileged process from dropping to a lesser-privileged one.
113 */ 113 */
114 force_sig(SIGKILL, current); 114 force_sig(SIGKILL);
115 return -EACCES; 115 return -EACCES;
116} 116}
117 117
@@ -203,7 +203,7 @@ static int safesetid_task_fix_setuid(struct cred *new,
203 break; 203 break;
204 default: 204 default:
205 pr_warn("Unknown setid state %d\n", flags); 205 pr_warn("Unknown setid state %d\n", flags);
206 force_sig(SIGKILL, current); 206 force_sig(SIGKILL);
207 return -EINVAL; 207 return -EINVAL;
208 } 208 }
209 return 0; 209 return 0;