aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/xmon/xmon.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/xmon/xmon.c')
-rw-r--r--arch/powerpc/xmon/xmon.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index f12687d0354d..b481db1dacb4 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -330,18 +330,17 @@ static void release_output_lock(void)
330static int xmon_core(struct pt_regs *regs, int fromipi) 330static int xmon_core(struct pt_regs *regs, int fromipi)
331{ 331{
332 int cmd = 0; 332 int cmd = 0;
333 unsigned long msr;
334 struct bpt *bp; 333 struct bpt *bp;
335 long recurse_jmp[JMP_BUF_LEN]; 334 long recurse_jmp[JMP_BUF_LEN];
336 unsigned long offset; 335 unsigned long offset;
336 unsigned long flags;
337#ifdef CONFIG_SMP 337#ifdef CONFIG_SMP
338 int cpu; 338 int cpu;
339 int secondary; 339 int secondary;
340 unsigned long timeout; 340 unsigned long timeout;
341#endif 341#endif
342 342
343 msr = mfmsr(); 343 local_irq_save(flags);
344 mtmsr(msr & ~MSR_EE); /* disable interrupts */
345 344
346 bp = in_breakpoint_table(regs->nip, &offset); 345 bp = in_breakpoint_table(regs->nip, &offset);
347 if (bp != NULL) { 346 if (bp != NULL) {
@@ -516,7 +515,7 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
516 515
517 insert_cpu_bpts(); 516 insert_cpu_bpts();
518 517
519 mtmsr(msr); /* restore interrupt enable */ 518 local_irq_restore(flags);
520 519
521 return cmd != 'X' && cmd != EOF; 520 return cmd != 'X' && cmd != EOF;
522} 521}