diff options
Diffstat (limited to 'arch/ppc64/xmon/xmon.c')
-rw-r--r-- | arch/ppc64/xmon/xmon.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/ppc64/xmon/xmon.c b/arch/ppc64/xmon/xmon.c index 7f6e13a4b71e..05539439e6bc 100644 --- a/arch/ppc64/xmon/xmon.c +++ b/arch/ppc64/xmon/xmon.c | |||
@@ -329,13 +329,16 @@ int xmon_core(struct pt_regs *regs, int fromipi) | |||
329 | printf("cpu 0x%x: Exception %lx %s in xmon, " | 329 | printf("cpu 0x%x: Exception %lx %s in xmon, " |
330 | "returning to main loop\n", | 330 | "returning to main loop\n", |
331 | cpu, regs->trap, getvecname(TRAP(regs))); | 331 | cpu, regs->trap, getvecname(TRAP(regs))); |
332 | release_output_lock(); | ||
332 | longjmp(xmon_fault_jmp[cpu], 1); | 333 | longjmp(xmon_fault_jmp[cpu], 1); |
333 | } | 334 | } |
334 | 335 | ||
335 | if (setjmp(recurse_jmp) != 0) { | 336 | if (setjmp(recurse_jmp) != 0) { |
336 | if (!in_xmon || !xmon_gate) { | 337 | if (!in_xmon || !xmon_gate) { |
338 | get_output_lock(); | ||
337 | printf("xmon: WARNING: bad recursive fault " | 339 | printf("xmon: WARNING: bad recursive fault " |
338 | "on cpu 0x%x\n", cpu); | 340 | "on cpu 0x%x\n", cpu); |
341 | release_output_lock(); | ||
339 | goto waiting; | 342 | goto waiting; |
340 | } | 343 | } |
341 | secondary = !(xmon_taken && cpu == xmon_owner); | 344 | secondary = !(xmon_taken && cpu == xmon_owner); |