提交 ae417bb4 编写于 作者: H Hiroshi Shimamoto 提交者: Ingo Molnar

x86: signal: use signal_fault() in sys_sigreturn()

Impact: cleanup

Call signal_fault() in error route of sys_sigreturn().
Change log level to KERN_EMERG if current is init.
Signed-off-by: NHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 4217458d
...@@ -594,17 +594,7 @@ asmlinkage unsigned long sys_sigreturn(unsigned long __unused) ...@@ -594,17 +594,7 @@ asmlinkage unsigned long sys_sigreturn(unsigned long __unused)
return ax; return ax;
badframe: badframe:
if (show_unhandled_signals && printk_ratelimit()) { signal_fault(regs, frame, "sigreturn");
printk("%s%s[%d] bad frame in sigreturn frame:"
"%p ip:%lx sp:%lx oeax:%lx",
task_pid_nr(current) > 1 ? KERN_INFO : KERN_EMERG,
current->comm, task_pid_nr(current), frame, regs->ip,
regs->sp, regs->orig_ax);
print_vma_addr(" in ", regs->ip);
printk(KERN_CONT "\n");
}
force_sig(SIGSEGV, current);
return 0; return 0;
} }
...@@ -901,8 +891,9 @@ void signal_fault(struct pt_regs *regs, void __user *frame, char *where) ...@@ -901,8 +891,9 @@ void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
struct task_struct *me = current; struct task_struct *me = current;
if (show_unhandled_signals && printk_ratelimit()) { if (show_unhandled_signals && printk_ratelimit()) {
printk(KERN_INFO printk("%s"
"%s[%d] bad frame in %s frame:%p ip:%lx sp:%lx orax:%lx", "%s[%d] bad frame in %s frame:%p ip:%lx sp:%lx orax:%lx",
task_pid_nr(current) > 1 ? KERN_INFO : KERN_EMERG,
me->comm, me->pid, where, frame, me->comm, me->pid, where, frame,
regs->ip, regs->sp, regs->orig_ax); regs->ip, regs->sp, regs->orig_ax);
print_vma_addr(" in ", regs->ip); print_vma_addr(" in ", regs->ip);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册