diff options
| -rw-r--r-- | arch/x86/include/asm/kdebug.h | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/dumpstack.c | 11 | ||||
| -rw-r--r-- | arch/x86/kernel/process_64.c | 2 | ||||
| -rw-r--r-- | arch/x86/mm/fault.c | 2 | ||||
| -rw-r--r-- | arch/x86/platform/uv/uv_nmi.c | 2 |
5 files changed, 12 insertions, 7 deletions
diff --git a/arch/x86/include/asm/kdebug.h b/arch/x86/include/asm/kdebug.h index 2c37aadcbc35..32ce71375b21 100644 --- a/arch/x86/include/asm/kdebug.h +++ b/arch/x86/include/asm/kdebug.h | |||
| @@ -21,7 +21,7 @@ enum die_val { | |||
| 21 | DIE_NMIUNKNOWN, | 21 | DIE_NMIUNKNOWN, |
| 22 | }; | 22 | }; |
| 23 | 23 | ||
| 24 | extern void printk_address(unsigned long address, int reliable); | 24 | extern void printk_address(unsigned long address); |
| 25 | extern void die(const char *, struct pt_regs *,long); | 25 | extern void die(const char *, struct pt_regs *,long); |
| 26 | extern int __must_check __die(const char *, struct pt_regs *, long); | 26 | extern int __must_check __die(const char *, struct pt_regs *, long); |
| 27 | extern void show_trace(struct task_struct *t, struct pt_regs *regs, | 27 | extern void show_trace(struct task_struct *t, struct pt_regs *regs, |
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c index deb6421c9e69..d9c12d3022a7 100644 --- a/arch/x86/kernel/dumpstack.c +++ b/arch/x86/kernel/dumpstack.c | |||
| @@ -25,12 +25,17 @@ unsigned int code_bytes = 64; | |||
| 25 | int kstack_depth_to_print = 3 * STACKSLOTS_PER_LINE; | 25 | int kstack_depth_to_print = 3 * STACKSLOTS_PER_LINE; |
| 26 | static int die_counter; | 26 | static int die_counter; |
| 27 | 27 | ||
| 28 | void printk_address(unsigned long address, int reliable) | 28 | static void printk_stack_address(unsigned long address, int reliable) |
| 29 | { | 29 | { |
| 30 | pr_cont(" [<%p>] %s%pB\n", | 30 | pr_cont(" [<%p>] %s%pB\n", |
| 31 | (void *)address, reliable ? "" : "? ", (void *)address); | 31 | (void *)address, reliable ? "" : "? ", (void *)address); |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | void printk_address(unsigned long address) | ||
| 35 | { | ||
| 36 | pr_cont(" [<%p>] %pS\n", (void *)address, (void *)address); | ||
| 37 | } | ||
| 38 | |||
| 34 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 39 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
| 35 | static void | 40 | static void |
| 36 | print_ftrace_graph_addr(unsigned long addr, void *data, | 41 | print_ftrace_graph_addr(unsigned long addr, void *data, |
| @@ -151,7 +156,7 @@ static void print_trace_address(void *data, unsigned long addr, int reliable) | |||
| 151 | { | 156 | { |
| 152 | touch_nmi_watchdog(); | 157 | touch_nmi_watchdog(); |
| 153 | printk(data); | 158 | printk(data); |
| 154 | printk_address(addr, reliable); | 159 | printk_stack_address(addr, reliable); |
| 155 | } | 160 | } |
| 156 | 161 | ||
| 157 | static const struct stacktrace_ops print_trace_ops = { | 162 | static const struct stacktrace_ops print_trace_ops = { |
| @@ -281,7 +286,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err) | |||
| 281 | #else | 286 | #else |
| 282 | /* Executive summary in case the oops scrolled away */ | 287 | /* Executive summary in case the oops scrolled away */ |
| 283 | printk(KERN_ALERT "RIP "); | 288 | printk(KERN_ALERT "RIP "); |
| 284 | printk_address(regs->ip, 1); | 289 | printk_address(regs->ip); |
| 285 | printk(" RSP <%016lx>\n", regs->sp); | 290 | printk(" RSP <%016lx>\n", regs->sp); |
| 286 | #endif | 291 | #endif |
| 287 | return 0; | 292 | return 0; |
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 45ab4d6fc8a7..176ad94e1d57 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
| @@ -63,7 +63,7 @@ void __show_regs(struct pt_regs *regs, int all) | |||
| 63 | unsigned int ds, cs, es; | 63 | unsigned int ds, cs, es; |
| 64 | 64 | ||
| 65 | printk(KERN_DEFAULT "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); | 65 | printk(KERN_DEFAULT "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); |
| 66 | printk_address(regs->ip, 1); | 66 | printk_address(regs->ip); |
| 67 | printk(KERN_DEFAULT "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, | 67 | printk(KERN_DEFAULT "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, |
| 68 | regs->sp, regs->flags); | 68 | regs->sp, regs->flags); |
| 69 | printk(KERN_DEFAULT "RAX: %016lx RBX: %016lx RCX: %016lx\n", | 69 | printk(KERN_DEFAULT "RAX: %016lx RBX: %016lx RCX: %016lx\n", |
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 7a517bb41060..e7e1cac74e8d 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c | |||
| @@ -596,7 +596,7 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code, | |||
| 596 | 596 | ||
| 597 | printk(KERN_CONT " at %p\n", (void *) address); | 597 | printk(KERN_CONT " at %p\n", (void *) address); |
| 598 | printk(KERN_ALERT "IP:"); | 598 | printk(KERN_ALERT "IP:"); |
| 599 | printk_address(regs->ip, 1); | 599 | printk_address(regs->ip); |
| 600 | 600 | ||
| 601 | dump_pagetable(address); | 601 | dump_pagetable(address); |
| 602 | } | 602 | } |
diff --git a/arch/x86/platform/uv/uv_nmi.c b/arch/x86/platform/uv/uv_nmi.c index 2e863ad4a772..8eeccba73130 100644 --- a/arch/x86/platform/uv/uv_nmi.c +++ b/arch/x86/platform/uv/uv_nmi.c | |||
| @@ -399,7 +399,7 @@ static void uv_nmi_dump_cpu_ip(int cpu, struct pt_regs *regs) | |||
| 399 | printk(KERN_DEFAULT "UV: %4d %6d %-32.32s ", | 399 | printk(KERN_DEFAULT "UV: %4d %6d %-32.32s ", |
| 400 | cpu, current->pid, current->comm); | 400 | cpu, current->pid, current->comm); |
| 401 | 401 | ||
| 402 | printk_address(regs->ip, 1); | 402 | printk_address(regs->ip); |
| 403 | } | 403 | } |
| 404 | 404 | ||
| 405 | /* Dump this cpu's state */ | 405 | /* Dump this cpu's state */ |
