diff -urpN -X /home/fletch/.diff.exclude 870-uninit_timer/arch/i386/kernel/traps.c 871-sysrq_t_fix/arch/i386/kernel/traps.c --- 870-uninit_timer/arch/i386/kernel/traps.c Tue Jun 24 21:33:37 2003 +++ 871-sysrq_t_fix/arch/i386/kernel/traps.c Tue Jun 24 21:34:18 2003 @@ -144,19 +144,20 @@ void show_trace_task(struct task_struct show_trace(tsk, (unsigned long *)esp); } -void show_stack(struct task_struct *task, unsigned long * esp) +void show_stack(struct task_struct *task, unsigned long *esp) { unsigned long *stack; int i; - // debugging aid: "show_stack(NULL);" prints the - // back trace for this cpu. - - if(esp==NULL) - esp=(unsigned long*)&esp; + if (esp == NULL) { + if (task) + esp = (unsigned long*)task->thread.esp; + else + esp = (unsigned long *)&esp; + } stack = esp; - for(i=0; i < kstack_depth_to_print; i++) { + for(i = 0; i < kstack_depth_to_print; i++) { if (((long) stack & (THREAD_SIZE-1)) == 0) break; if (i && ((i % 8) == 0))