Since last posting I've added more debugging and done some test code that tires to irritate this on hardware (e.g., put DEC into the MUST_HARD_MASK category, set_dec(1) in the hash fault handler, run with perf, etc), and also trigger interrupts at various points stepping through in the simulator.
I haven't been able to break it. Sachin reported he couldn't reproduce the previous lockups he saw so possibly that was a red herring. I'd like to try again to close this if possible, it's probably one of the last major known uglinesses in the soft masking code. Thanks, Nick Nicholas Piggin (3): powerpc/64/interrupt: Fix return to masked context after hard-mask irq becomes pending powerpc/64s: Fix irq state management in runlatch functions powerpc/64s/interrupt: masked handler debug check for previous hard disable arch/powerpc/include/asm/runlatch.h | 6 ++--- arch/powerpc/kernel/exceptions-64s.S | 10 ++++++++ arch/powerpc/kernel/interrupt.c | 10 -------- arch/powerpc/kernel/interrupt_64.S | 34 +++++++++++++++++++++++++--- 4 files changed, 43 insertions(+), 17 deletions(-) -- 2.37.2