From: Alan Stern Date: Fri, 29 Feb 2008 16:50:22 +0000 (-0500) Subject: PM: fix new mutex-locking bug in the PM core X-Git-Tag: firefly_0821_release~22103^2~3 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1b3cbec1dcb6747b587b40335f5de1d9e035063c;p=firefly-linux-kernel-4.4.55.git PM: fix new mutex-locking bug in the PM core This patch (as1041) fixes a bug introduced by the acquire-all-device-semaphores reversion. The error pathway of dpm_suspend() fails to reacquire a mutex it should be holding. Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index b0c16f6fc186..d887d5cb5bef 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@ -428,6 +428,7 @@ static int dpm_suspend(pm_message_t state) mutex_unlock(&dpm_list_mtx); error = suspend_device(dev, state); + mutex_lock(&dpm_list_mtx); if (error) { printk(KERN_ERR "Could not suspend device %s: " "error %d%s\n", @@ -438,7 +439,6 @@ static int dpm_suspend(pm_message_t state) "")); break; } - mutex_lock(&dpm_list_mtx); if (!list_empty(&dev->power.entry)) list_move(&dev->power.entry, &dpm_off); }