|
36 | 36 | #include <asm/unwinder.h> |
37 | 37 | #include <asm/sections.h> |
38 | 38 |
|
39 | | -static int kstack_depth_to_print = 0x180; |
40 | 39 | int lwa_flag; |
41 | 40 | static unsigned long __user *lwa_addr; |
42 | 41 |
|
@@ -153,80 +152,6 @@ void show_registers(struct pt_regs *regs) |
153 | 152 | printk("\n"); |
154 | 153 | } |
155 | 154 |
|
156 | | -void nommu_dump_state(struct pt_regs *regs, |
157 | | - unsigned long ea, unsigned long vector) |
158 | | -{ |
159 | | - int i; |
160 | | - unsigned long addr, stack = regs->sp; |
161 | | - |
162 | | - printk("\n\r[nommu_dump_state] :: ea %lx, vector %lx\n\r", ea, vector); |
163 | | - |
164 | | - printk("CPU #: %d\n" |
165 | | - " PC: %08lx SR: %08lx SP: %08lx\n", |
166 | | - 0, regs->pc, regs->sr, regs->sp); |
167 | | - printk("GPR00: %08lx GPR01: %08lx GPR02: %08lx GPR03: %08lx\n", |
168 | | - 0L, regs->gpr[1], regs->gpr[2], regs->gpr[3]); |
169 | | - printk("GPR04: %08lx GPR05: %08lx GPR06: %08lx GPR07: %08lx\n", |
170 | | - regs->gpr[4], regs->gpr[5], regs->gpr[6], regs->gpr[7]); |
171 | | - printk("GPR08: %08lx GPR09: %08lx GPR10: %08lx GPR11: %08lx\n", |
172 | | - regs->gpr[8], regs->gpr[9], regs->gpr[10], regs->gpr[11]); |
173 | | - printk("GPR12: %08lx GPR13: %08lx GPR14: %08lx GPR15: %08lx\n", |
174 | | - regs->gpr[12], regs->gpr[13], regs->gpr[14], regs->gpr[15]); |
175 | | - printk("GPR16: %08lx GPR17: %08lx GPR18: %08lx GPR19: %08lx\n", |
176 | | - regs->gpr[16], regs->gpr[17], regs->gpr[18], regs->gpr[19]); |
177 | | - printk("GPR20: %08lx GPR21: %08lx GPR22: %08lx GPR23: %08lx\n", |
178 | | - regs->gpr[20], regs->gpr[21], regs->gpr[22], regs->gpr[23]); |
179 | | - printk("GPR24: %08lx GPR25: %08lx GPR26: %08lx GPR27: %08lx\n", |
180 | | - regs->gpr[24], regs->gpr[25], regs->gpr[26], regs->gpr[27]); |
181 | | - printk("GPR28: %08lx GPR29: %08lx GPR30: %08lx GPR31: %08lx\n", |
182 | | - regs->gpr[28], regs->gpr[29], regs->gpr[30], regs->gpr[31]); |
183 | | - printk(" RES: %08lx oGPR11: %08lx\n", |
184 | | - regs->gpr[11], regs->orig_gpr11); |
185 | | - |
186 | | - printk("Process %s (pid: %d, stackpage=%08lx)\n", |
187 | | - ((struct task_struct *)(__pa(current)))->comm, |
188 | | - ((struct task_struct *)(__pa(current)))->pid, |
189 | | - (unsigned long)current); |
190 | | - |
191 | | - printk("\nStack: "); |
192 | | - printk("Stack dump [0x%08lx]:\n", (unsigned long)stack); |
193 | | - for (i = 0; i < kstack_depth_to_print; i++) { |
194 | | - if (((long)stack & (THREAD_SIZE - 1)) == 0) |
195 | | - break; |
196 | | - stack++; |
197 | | - |
198 | | - printk("%lx :: sp + %02d: 0x%08lx\n", stack, i * 4, |
199 | | - *((unsigned long *)(__pa(stack)))); |
200 | | - } |
201 | | - printk("\n"); |
202 | | - |
203 | | - printk("Call Trace: "); |
204 | | - i = 1; |
205 | | - while (((long)stack & (THREAD_SIZE - 1)) != 0) { |
206 | | - addr = *((unsigned long *)__pa(stack)); |
207 | | - stack++; |
208 | | - |
209 | | - if (kernel_text_address(addr)) { |
210 | | - if (i && ((i % 6) == 0)) |
211 | | - printk("\n "); |
212 | | - printk(" [<%08lx>]", addr); |
213 | | - i++; |
214 | | - } |
215 | | - } |
216 | | - printk("\n"); |
217 | | - |
218 | | - printk("\nCode: "); |
219 | | - |
220 | | - for (i = -24; i < 24; i++) { |
221 | | - unsigned long word; |
222 | | - |
223 | | - word = ((unsigned long *)(__pa(regs->pc)))[i]; |
224 | | - |
225 | | - print_data(regs->pc, word, i); |
226 | | - } |
227 | | - printk("\n"); |
228 | | -} |
229 | | - |
230 | 155 | /* This is normally the 'Oops' routine */ |
231 | 156 | void __noreturn die(const char *str, struct pt_regs *regs, long err) |
232 | 157 | { |
|
0 commit comments