sparc64: Make corrupted user stacks more debuggable.
[linux-2.6-microblaze.git] / arch / sparc / kernel / signal32.c
index 44d379d..4c5b3fc 100644 (file)
@@ -371,7 +371,11 @@ static int setup_frame32(struct ksignal *ksig, struct pt_regs *regs,
                get_sigframe(ksig, regs, sigframe_size);
        
        if (invalid_frame_pointer(sf, sigframe_size)) {
-               do_exit(SIGILL);
+               if (show_unhandled_signals)
+                       pr_info("%s[%d] bad frame in setup_frame32: %08lx TPC %08lx O7 %08lx\n",
+                               current->comm, current->pid, (unsigned long)sf,
+                               regs->tpc, regs->u_regs[UREG_I7]);
+               force_sigsegv(ksig->sig, current);
                return -EINVAL;
        }
 
@@ -501,7 +505,11 @@ static int setup_rt_frame32(struct ksignal *ksig, struct pt_regs *regs,
                get_sigframe(ksig, regs, sigframe_size);
        
        if (invalid_frame_pointer(sf, sigframe_size)) {
-               do_exit(SIGILL);
+               if (show_unhandled_signals)
+                       pr_info("%s[%d] bad frame in setup_rt_frame32: %08lx TPC %08lx O7 %08lx\n",
+                               current->comm, current->pid, (unsigned long)sf,
+                               regs->tpc, regs->u_regs[UREG_I7]);
+               force_sigsegv(ksig->sig, current);
                return -EINVAL;
        }