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)
committerJiri Slaby <jslaby@suse.cz>
Wed, 5 Mar 2014 16:13:55 +0000 (17:13 +0100)
commit3787169fa3185aa8587972b5fdccbf700f60a4f1
treef24803ec43b5cd42c95f092f47b02bc42cc24550
parent6e511735ceacf47932d0c123f786df7698a221b8
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: Jiri Slaby <jslaby@suse.cz>
drivers/base/firmware_class.c