]> git.itanic.dy.fi Git - linux-stable/commit
PM / hibernate: Fix restore hang in freeze_processes()
authorSebastian Capella <sebastian.capella@linaro.org>
Wed, 19 Feb 2014 01:52:08 +0000 (17:52 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2014 06:06:29 +0000 (22:06 -0800)
commite5b0fd691249908917e96659c03f2bc5869ed249
treeec3a5788fc43000be965c7b50325b891d1c6e514
parentd8c2a97e20d1c4e726c21b2eac32a0258ff9ede0
PM / hibernate: Fix restore hang in freeze_processes()

commit f8d5b9e9e5372f0deb7bc1ab1088a9b60b0a793d upstream.

During restore, pm_notifier chain are called with
PM_RESTORE_PREPARE.  The firmware_class driver handler
fw_pm_notify does not have a handler for this.  As a result,
it keeps a reader on the kmod.c umhelper_sem.  During
freeze_processes, the call to __usermodehelper_disable tries to
take a write lock on this semaphore and hangs waiting.

Signed-off-by: Sebastian Capella <sebastian.capella@linaro.org>
Acked-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/firmware_class.c