Here are a few loosely related fixes for interrupt tracing code and irq state handling which eliminates local_irq_enable() when already enabled, and local_irq_disable() when already disabled, and also fixes an NMI re-entrancy bug in irq tracing that has been crashing in the field when PMU interrupts (non-maskable) and irq tracing runs together it's causing things to get into "impossible" states.
I have only tested 64s, and don't know if patch 1 and 2 are right on 64e or 32 so if anyone could take a look or test, that would be good. Thanks, Nick Nicholas Piggin (4): powerpc: define __ARCH_IRQ_EXIT_IRQS_DISABLED powerpc/64: do not trace irqs-off at interrupt return to soft-disabled context cpuidle/powernv: avoid double irq enable coming out of idle cpuidle/powernv: avoid double irq enable coming out of idle arch/powerpc/include/asm/hardirq.h | 1 + arch/powerpc/kernel/entry_64.S | 10 +++++++--- drivers/cpuidle/cpuidle-powernv.c | 2 ++ drivers/cpuidle/cpuidle-pseries.c | 6 ++++-- 4 files changed, 14 insertions(+), 5 deletions(-) -- 2.15.0