diff options
Diffstat (limited to 'arch/x86/kernel/dumpstack.c')
-rw-r--r-- | arch/x86/kernel/dumpstack.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c index c8797d55b245..dd1a7c391c90 100644 --- a/arch/x86/kernel/dumpstack.c +++ b/arch/x86/kernel/dumpstack.c | |||
@@ -176,7 +176,19 @@ void show_trace(struct task_struct *task, struct pt_regs *regs, | |||
176 | 176 | ||
177 | void show_stack(struct task_struct *task, unsigned long *sp) | 177 | void show_stack(struct task_struct *task, unsigned long *sp) |
178 | { | 178 | { |
179 | show_stack_log_lvl(task, NULL, sp, 0, ""); | 179 | unsigned long bp = 0; |
180 | unsigned long stack; | ||
181 | |||
182 | /* | ||
183 | * Stack frames below this one aren't interesting. Don't show them | ||
184 | * if we're printing for %current. | ||
185 | */ | ||
186 | if (!sp && (!task || task == current)) { | ||
187 | sp = &stack; | ||
188 | bp = stack_frame(current, NULL); | ||
189 | } | ||
190 | |||
191 | show_stack_log_lvl(task, NULL, sp, bp, ""); | ||
180 | } | 192 | } |
181 | 193 | ||
182 | /* | 194 | /* |