* Tsutomu OWA [off-list ref] wrote:
quoted hunk ↗ jump to hunk
@@ -342,6 +342,7 @@ static int xmon_core(struct pt_regs *reg
msr = mfmsr();
mtmsr(msr & ~MSR_EE); /* disable interrupts */
+ preempt_disable();
i'm not an xmon expert, but maybe it might make more sense to first
disable preemption, then interrupts - otherwise you could be preempted
right after having disabled these interrupts (and be scheduled to
another CPU, etc.). What is the difference between local_irq_save() and
the above 'disable interrupts' sequence? If it's not the same and
xmon_core() relied on having hardirqs disabled then it might make sense
to do a local_irq_save() there, instead of a preempt_disable().
Ingo