diff options
Diffstat (limited to 'arch/x86/kernel/traps_64.c')
-rw-r--r-- | arch/x86/kernel/traps_64.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/kernel/traps_64.c b/arch/x86/kernel/traps_64.c index 4a6bd4965f56..d11525ad81b4 100644 --- a/arch/x86/kernel/traps_64.c +++ b/arch/x86/kernel/traps_64.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/uaccess.h> | 31 | #include <linux/uaccess.h> |
32 | #include <linux/bug.h> | 32 | #include <linux/bug.h> |
33 | #include <linux/kdebug.h> | 33 | #include <linux/kdebug.h> |
34 | #include <linux/utsname.h> | ||
34 | 35 | ||
35 | #if defined(CONFIG_EDAC) | 36 | #if defined(CONFIG_EDAC) |
36 | #include <linux/edac.h> | 37 | #include <linux/edac.h> |
@@ -400,6 +401,12 @@ void show_stack(struct task_struct *tsk, unsigned long * rsp) | |||
400 | void dump_stack(void) | 401 | void dump_stack(void) |
401 | { | 402 | { |
402 | unsigned long dummy; | 403 | unsigned long dummy; |
404 | |||
405 | printk("Pid: %d, comm: %.20s %s %s %.*s\n", | ||
406 | current->pid, current->comm, print_tainted(), | ||
407 | init_utsname()->release, | ||
408 | (int)strcspn(init_utsname()->version, " "), | ||
409 | init_utsname()->version); | ||
403 | show_trace(NULL, NULL, &dummy); | 410 | show_trace(NULL, NULL, &dummy); |
404 | } | 411 | } |
405 | 412 | ||
@@ -846,6 +853,8 @@ asmlinkage void __kprobes do_debug(struct pt_regs * regs, | |||
846 | struct task_struct *tsk = current; | 853 | struct task_struct *tsk = current; |
847 | siginfo_t info; | 854 | siginfo_t info; |
848 | 855 | ||
856 | trace_hardirqs_fixup(); | ||
857 | |||
849 | get_debugreg(condition, 6); | 858 | get_debugreg(condition, 6); |
850 | 859 | ||
851 | if (notify_die(DIE_DEBUG, "debug", regs, condition, error_code, | 860 | if (notify_die(DIE_DEBUG, "debug", regs, condition, error_code, |