[PATCH 24/47] PM: device_suspend/resume may sleep

Greg KH
2006-09-26T05:49:38Z

From: Pavel Machek <pavel@suse.cz>

This adds warning when someone tries them from atomic context.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/base/power/resume.c | 1 +
drivers/base/power/suspend.c | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/base/power/resume.c b/drivers/base/power/resume.c
index 48e3d49..7cb62d6 100644
--- a/drivers/base/power/resume.c
+++ b/drivers/base/power/resume.c
@@ -96,6 +96,7 @@ void dpm_resume(void)

void device_resume(void)
{
+ might_sleep();
down(&dpm_sem);
dpm_resume();
up(&dpm_sem);
diff --git a/drivers/base/power/suspend.c b/drivers/base/power/suspend.c
index 6453c25..ece136b 100644
--- a/drivers/base/power/suspend.c
+++ b/drivers/base/power/suspend.c
@@ -140,6 +140,7 @@ int device_suspend(pm_message_t state)
{
int error = 0;

+ might_sleep();
down(&dpm_sem);
down(&dpm_list_sem);
while (!list_empty(&dpm_active) && error == 0) {
--
1.4.2.1