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)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 26 Feb 2014 00:13:15 +0000 (01:13 +0100)
commitf8d5b9e9e5372f0deb7bc1ab1088a9b60b0a793d
tree7ad881c6ca24b6cac29cb2321ecea6b3edba21f2
parentcfbf8d4857c26a8a307fb7cd258074c9dcd8c691
PM / hibernate: Fix restore hang in freeze_processes()

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>
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/base/firmware_class.c