diff options
Diffstat (limited to 'arch/x86/kernel/dumpstack_32.c')
-rw-r--r-- | arch/x86/kernel/dumpstack_32.c | 33 |
1 files changed, 1 insertions, 32 deletions
diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c index 06eb322b5f9f..90cf460d50bd 100644 --- a/arch/x86/kernel/dumpstack_32.c +++ b/arch/x86/kernel/dumpstack_32.c | |||
@@ -121,36 +121,6 @@ unknown: | |||
121 | return -EINVAL; | 121 | return -EINVAL; |
122 | } | 122 | } |
123 | 123 | ||
124 | void show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs, | ||
125 | unsigned long *sp, char *log_lvl) | ||
126 | { | ||
127 | unsigned long *stack; | ||
128 | int i; | ||
129 | |||
130 | if (!try_get_task_stack(task)) | ||
131 | return; | ||
132 | |||
133 | sp = sp ? : get_stack_pointer(task, regs); | ||
134 | |||
135 | stack = sp; | ||
136 | for (i = 0; i < kstack_depth_to_print; i++) { | ||
137 | if (kstack_end(stack)) | ||
138 | break; | ||
139 | if ((i % STACKSLOTS_PER_LINE) == 0) { | ||
140 | if (i != 0) | ||
141 | pr_cont("\n"); | ||
142 | printk("%s %08lx", log_lvl, *stack++); | ||
143 | } else | ||
144 | pr_cont(" %08lx", *stack++); | ||
145 | touch_nmi_watchdog(); | ||
146 | } | ||
147 | pr_cont("\n"); | ||
148 | show_trace_log_lvl(task, regs, sp, log_lvl); | ||
149 | |||
150 | put_task_stack(task); | ||
151 | } | ||
152 | |||
153 | |||
154 | void show_regs(struct pt_regs *regs) | 124 | void show_regs(struct pt_regs *regs) |
155 | { | 125 | { |
156 | int i; | 126 | int i; |
@@ -168,8 +138,7 @@ void show_regs(struct pt_regs *regs) | |||
168 | unsigned char c; | 138 | unsigned char c; |
169 | u8 *ip; | 139 | u8 *ip; |
170 | 140 | ||
171 | pr_emerg("Stack:\n"); | 141 | show_trace_log_lvl(current, regs, NULL, KERN_EMERG); |
172 | show_stack_log_lvl(current, regs, NULL, KERN_EMERG); | ||
173 | 142 | ||
174 | pr_emerg("Code:"); | 143 | pr_emerg("Code:"); |
175 | 144 | ||