RE: [PATCH] i2c: imx: Fix external abort on early interrupt

From: Aisheng Dong
Date: Mon Jun 15 2020 - 03:37:30 EST


> From: Wolfram Sang <wsa@xxxxxxxxxx>
> Sent: Friday, June 12, 2020 9:00 PM
>
> On Fri, Jun 12, 2020 at 02:18:06PM +0200, Marc Kleine-Budde wrote:
> > On 6/12/20 1:51 PM, Wolfram Sang wrote:
> > >
> > >> This basically kills the concept of devm for interrupts. Some other
> > >
> > > It only works when you can ensure you have all interrupts disabled
> > > (and none pending) in remove() or the error paths of probe() etc.
> >
> > But when requesting the interrupt as shared the interrupt handler can
> > get called any time, even if you have disabled the IRQ source in your
> > IP core....The shared IRQ debug code tests this.
>
> Yes, so you'd need something like
>
> if (clks_are_off)
> return IRQ_NONE;
>

I understand this. But ..

> or skip devm_ for interrupts and handle it manually. (IIRC the input subsystem
> really frowns upon devm + irqs for such reasons)
>
> D'accord?

Handle it manually looks to me can only address the issue for probe error path.
But how can it handle the normal running cases that shared irq arrived when device
is in runtime suspend state?

Regards
Aisheng