aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/signal.c')
-rw-r--r--arch/x86/kernel/signal.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index b1cc6da64208..2725a294d734 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -594,17 +594,7 @@ asmlinkage unsigned long sys_sigreturn(unsigned long __unused)
594 return ax; 594 return ax;
595 595
596badframe: 596badframe:
597 if (show_unhandled_signals && printk_ratelimit()) { 597 signal_fault(regs, frame, "sigreturn");
598 printk("%s%s[%d] bad frame in sigreturn frame:"
599 "%p ip:%lx sp:%lx oeax:%lx",
600 task_pid_nr(current) > 1 ? KERN_INFO : KERN_EMERG,
601 current->comm, task_pid_nr(current), frame, regs->ip,
602 regs->sp, regs->orig_ax);
603 print_vma_addr(" in ", regs->ip);
604 printk(KERN_CONT "\n");
605 }
606
607 force_sig(SIGSEGV, current);
608 598
609 return 0; 599 return 0;
610} 600}
@@ -901,8 +891,9 @@ void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
901 struct task_struct *me = current; 891 struct task_struct *me = current;
902 892
903 if (show_unhandled_signals && printk_ratelimit()) { 893 if (show_unhandled_signals && printk_ratelimit()) {
904 printk(KERN_INFO 894 printk("%s"
905 "%s[%d] bad frame in %s frame:%p ip:%lx sp:%lx orax:%lx", 895 "%s[%d] bad frame in %s frame:%p ip:%lx sp:%lx orax:%lx",
896 task_pid_nr(current) > 1 ? KERN_INFO : KERN_EMERG,
906 me->comm, me->pid, where, frame, 897 me->comm, me->pid, where, frame,
907 regs->ip, regs->sp, regs->orig_ax); 898 regs->ip, regs->sp, regs->orig_ax);
908 print_vma_addr(" in ", regs->ip); 899 print_vma_addr(" in ", regs->ip);