Re: [PATCH] PM / core: Fix direct_complete handling for devices with no callbacks

From: Johan Hovold
Date: Tue May 22 2018 - 07:43:13 EST


On Tue, May 22, 2018 at 01:02:17PM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> Commit 08810a4119aa (PM / core: Add NEVER_SKIP and SMART_PREPARE
> driver flags) inadvertently prevented the power.direct_complete flag
> from being set for devices without PM callbacks and with disabled
> runtime PM which also prevents power.direct_complete from being set
> for their parents. That led to problems including a resume crash on
> HP ZBook 14u.
>
> Restore the previous behavior by causing power.direct_complete to be
> set for those devices again, but do that in a more direct way to
> avoid overlooking that case in the future.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=199693
> Fixes: 08810a4119aa (PM / core: Add NEVER_SKIP and SMART_PREPARE driver flags)

I stumbled over this the other day as well and tracked it down to the
above commit. In my case (child devices to serdev clients), this was
mostly benign although it did prevent the direct-complete optimisation
during suspend.

Never got around to reporting or fixing it myself, but your analysis and
fix matches my initial findings.

> Reported-by: Thomas Martitz <kugel@xxxxxxxxxxx>
> Tested-by: Thomas Martitz <kugel@xxxxxxxxxxx>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

Reviewed-by: Johan Hovold <johan@xxxxxxxxxx>

As already suggested elsewhere in the thread, I think a stable is
warranted too.

Thanks,
Johan