aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/traps.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel/traps.c')
-rw-r--r--arch/i386/kernel/traps.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
index 0e498369f35e..dcc14477af1f 100644
--- a/arch/i386/kernel/traps.c
+++ b/arch/i386/kernel/traps.c
@@ -149,6 +149,12 @@ static inline unsigned long print_context_stack(struct thread_info *tinfo,
149 while (valid_stack_ptr(tinfo, (void *)ebp)) { 149 while (valid_stack_ptr(tinfo, (void *)ebp)) {
150 addr = *(unsigned long *)(ebp + 4); 150 addr = *(unsigned long *)(ebp + 4);
151 printed = print_addr_and_symbol(addr, log_lvl, printed); 151 printed = print_addr_and_symbol(addr, log_lvl, printed);
152 /*
153 * break out of recursive entries (such as
154 * end_of_stack_stop_unwind_function):
155 */
156 if (ebp == *(unsigned long *)ebp)
157 break;
152 ebp = *(unsigned long *)ebp; 158 ebp = *(unsigned long *)ebp;
153 } 159 }
154#else 160#else
@@ -268,8 +274,9 @@ void show_registers(struct pt_regs *regs)
268 regs->esi, regs->edi, regs->ebp, esp); 274 regs->esi, regs->edi, regs->ebp, esp);
269 printk(KERN_EMERG "ds: %04x es: %04x ss: %04x\n", 275 printk(KERN_EMERG "ds: %04x es: %04x ss: %04x\n",
270 regs->xds & 0xffff, regs->xes & 0xffff, ss); 276 regs->xds & 0xffff, regs->xes & 0xffff, ss);
271 printk(KERN_EMERG "Process %s (pid: %d, threadinfo=%p task=%p)", 277 printk(KERN_EMERG "Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)",
272 current->comm, current->pid, current_thread_info(), current); 278 TASK_COMM_LEN, current->comm, current->pid,
279 current_thread_info(), current, current->thread_info);
273 /* 280 /*
274 * When in-kernel, we also print out the stack and code at the 281 * When in-kernel, we also print out the stack and code at the
275 * time of the fault.. 282 * time of the fault..