[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.20.1610241847580.5002@nanos>
Date: Mon, 24 Oct 2016 18:55:22 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Mason <slash.tmp@...e.fr>
cc: Marc Zyngier <marc.zyngier@....com>,
Jason Cooper <jason@...edaemon.net>,
LKML <linux-kernel@...r.kernel.org>,
Linux ARM <linux-arm-kernel@...ts.infradead.org>,
Sebastian Frias <sf84@...oste.net>
Subject: Re: Disabling an interrupt in the handler locks the system up
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
Powered by blists - more mailing lists