Commit d4f238ad authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds

[PATCH] x86_64: Always print segfaults for init.

Always print segfaults for init. 

This gives better debugging output when something is really wrong with the
kernel.
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 87b088f9
...@@ -212,6 +212,8 @@ static int is_errata93(struct pt_regs *regs, unsigned long address) ...@@ -212,6 +212,8 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
int unhandled_signal(struct task_struct *tsk, int sig) int unhandled_signal(struct task_struct *tsk, int sig)
{ {
if (tsk->pid == 1)
return 1;
/* Warn for strace, but not for gdb */ /* Warn for strace, but not for gdb */
if (!test_ti_thread_flag(tsk->thread_info, TIF_SYSCALL_TRACE) && if (!test_ti_thread_flag(tsk->thread_info, TIF_SYSCALL_TRACE) &&
(tsk->ptrace & PT_PTRACED)) (tsk->ptrace & PT_PTRACED))
...@@ -483,8 +485,9 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code) ...@@ -483,8 +485,9 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code)
return; return;
if (exception_trace && unhandled_signal(tsk, SIGSEGV)) { if (exception_trace && unhandled_signal(tsk, SIGSEGV)) {
printk(KERN_INFO printk(
"%s[%d]: segfault at %016lx rip %016lx rsp %016lx error %lx\n", "%s%s[%d]: segfault at %016lx rip %016lx rsp %016lx error %lx\n",
tsk->pid > 1 ? KERN_INFO : KERN_EMERG,
tsk->comm, tsk->pid, address, regs->rip, tsk->comm, tsk->pid, address, regs->rip,
regs->rsp, error_code); regs->rsp, error_code);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment