Re: [GIT pull] irq updates for 4.13

From: Tony Lindgren
Date: Tue Jul 11 2017 - 11:44:04 EST


* Thomas Gleixner <tglx@xxxxxxxxxxxxx> [170711 08:07]:
> On Tue, 11 Jul 2017, Thomas Gleixner wrote:
> > On Tue, 11 Jul 2017, Tony Lindgren wrote:
> > > * Thomas Gleixner <tglx@xxxxxxxxxxxxx> [170711 02:48]:
> > > And "external abort on non-linefetch" means something is not clocked
> > > in this case. The following alone makes things boot for me again, but I don't
> > > quite follow what has now changed with the ordering.. Thomas, any ideas?
> >
> > Ah. Now that makes sense.
> >
> > Unpatched the ordering is:
> >
> > chip_bus_lock(desc);
> > irq_request_resources(desc);
> >
> > Now the offending change reordered the calls. OMAP gpio has:
> >
> > omap_gpio_irq_bus_lock()
> > pm_runtime_get_sync(bank->chip.parent);
> >
> > So that at least explains the error. So that omap gpio irq chip (ab)uses
> > the bus_lock() callback to do runtime power management. Sigh, I did not
> > expect that. Let me have a deeper look if that's OMAP only or whether this
> > happens in other places as well.

OK that explains.

> So OMAP-GPIO is the only driver which abuses bus_lock/unlock() in that way
> and gets surprised.

OK. Grygorii, care to take a look if there's a better way to deal with
runtime PM for gpio-omap?

Meanwhile, below is my fix again with a proper description so we can
have working -rc1.

Regards,

Tony

8< ------