Disabling an interrupt in the handler locks the system up

Thomas Gleixner tglx at linutronix.de
Mon Oct 24 09:55:22 PDT 2016


On Mon, 24 Oct 2016, Mason wrote:
> 
> For the record, setting the IRQ_DISABLE_UNLAZY flag for this device
> makes the system lock-up disappear.

The way how lazy irq disabling works is:

1) Interrupt is marked disabled in software, but the hardware is not masked

2) If the interrupt fires befor the interrupt is reenabled, then it's
   masked at the hardware level in the low level interrupt flow handler.

I have no idea why that does not work on your hardware. You might
instrument handle_level_irq() to see what effect that has.

Thanks,

	tglx







More information about the linux-arm-kernel mailing list