Re: [BACKPORT 4.4.y] PM / sleep: prohibit devices probing during suspend/hibernation

From: Sasha Levin
Date: Wed Jun 05 2019 - 21:13:03 EST


On Wed, Jun 05, 2019 at 07:14:12PM +0800, Chunyan Zhang wrote:
From: "Strashko, Grygorii" <grygorii.strashko@xxxxxx>

[ Upstream commit 013c074f8642d8e815ad670601f8e27155a74b57 ]

It is unsafe [1] if probing of devices will happen during suspend or
hibernation and system behavior will be unpredictable in this case.
So, let's prohibit device's probing in dpm_prepare() and defer their
probing instead. The normal behavior will be restored in
dpm_complete().

This patch introduces new DD core APIs:
device_block_probing()
It will disable probing of devices and defer their probes instead.
device_unblock_probing()
It will restore normal behavior and trigger re-probing of deferred
devices.

[1] https://lkml.org/lkml/2015/9/11/554

Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
Acked-by: Pavel Machek <pavel@xxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
Signed-off-by: Chunyan Zhang <zhang.chunyan@xxxxxxxxxx>

This patch had to be fixed a few times (see 015bb5e134 and 9a2a5a638f8),
we can't just take it as is.

It might be just simpler to move to a newer kernel at this point.

--
Thanks,
Sasha