Re: Crash introduced by commit b8b2c7d845d5 ("base/platform: assert that dev_pm_domain callbacks are called unconditionally")

From: Alan Stern
Date: Tue Jan 19 2016 - 15:06:43 EST


On Tue, 19 Jan 2016, Uwe [iso-8859-1] Kleine-Kö wrote:

> Hello Alan,
>
> On Tue, Jan 19, 2016 at 01:22:22PM -0500, Alan Stern wrote:
> >
> > Your commit causes my ASUS laptop to crash during early boot. The
> > problem occurs in platform_drv_probe(), affecting both the alarmtimer
> > and the asus_laptop platform drivers (I can't tell which is the
> > critical one).
> >
> > The old code would not call platform_drv_probe() at all, and probing
> > would always succeed immediately because these drivers have no probe
> > routine. But with the new code, platform_drv_probe() does run. The
> > call to of_clk_set_defaults() returns -ENODEV, as does the call to
> > dev_pm_domain_attach(). The call to drv->probe() gets skipped, of
> > course. The final return value is -ENODEV, and so probing fails. This
> > causes the kernel to crash: blank screen, NumLock LED blinking.
> >
> > The patch below fixes the problem, but I'm not sure that it's the best
> > solution. What is your advice?
> You want
>
> http://mid.gmane.org/1449132704-9952-1-git-send-email-martin.wilck@xxxxxxxxxxxxxx
>
> .
>
> Greg, I'd welcome this fix in mainline and 4.4.x.

Yep, that fixed it, thank you. This definitely needs to get into 4.4.x
as soon as possible.

Alan Stern