Re: [PATCH] ads7846: fix unsafe disable_irq (was [REGRESSION]threaded interrupt handler support breaks (some) irq handling onAVR32)

From: Dmitry Torokhov
Date: Wed Apr 15 2009 - 21:58:46 EST


On Thu, Apr 16, 2009 at 10:41:57AM +1000, Ben Nizette wrote:
> On Wed, 2009-04-15 at 09:57 +0200, Haavard Skinnemoen wrote:
> > Shouldn't that be disable_irq_nosync()?
>
> Indeed, good catch. That fixes it.
>
> --------------8<--------------------
>
> The use of disable_irq inside the handler for the interrupt being
> disabled has always been dangerous. disable_irq should wait for that
> handler to complete before returning -> deadlock.
>
> For some reason this wasn't actually the case until 3aa551c9b was merged
> but since this time, the ads7846 driver has deadlocked the system on
> first interrupt.
>
> Convert the driver to use the handler-safe _nosync variant.
>

Applied, thank you very much Ben.

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/