summaryrefslogtreecommitdiff
path: root/drivers/base/power/main.c
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2009-05-29 13:19:22 +0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-05-29 13:19:22 +0400
commita35197a8be891072b3654dc7a2285573150dedee (patch)
treef3829335b8a0cd40e2cdb94d7fefb54bf67977df /drivers/base/power/main.c
parent6daad5c6c586bf07528ae5b39e801b204468f907 (diff)
parent67a433ce278b98f47272726a22537fab7fd99de9 (diff)
downloadlinux-a35197a8be891072b3654dc7a2285573150dedee.tar.xz
Merge branch 'for-rmk' of git://gitorious.org/linux-gemini/mainline
Diffstat (limited to 'drivers/base/power/main.c')
-rw-r--r--drivers/base/power/main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 69b4ddb7de3b..3e4bc699bc0f 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -357,6 +357,7 @@ static void dpm_power_up(pm_message_t state)
{
struct device *dev;
+ mutex_lock(&dpm_list_mtx);
list_for_each_entry(dev, &dpm_list, power.entry)
if (dev->power.status > DPM_OFF) {
int error;
@@ -366,6 +367,7 @@ static void dpm_power_up(pm_message_t state)
if (error)
pm_dev_err(dev, state, " early", error);
}
+ mutex_unlock(&dpm_list_mtx);
}
/**
@@ -614,6 +616,7 @@ int device_power_down(pm_message_t state)
int error = 0;
suspend_device_irqs();
+ mutex_lock(&dpm_list_mtx);
list_for_each_entry_reverse(dev, &dpm_list, power.entry) {
error = suspend_device_noirq(dev, state);
if (error) {
@@ -622,6 +625,7 @@ int device_power_down(pm_message_t state)
}
dev->power.status = DPM_OFF_IRQ;
}
+ mutex_unlock(&dpm_list_mtx);
if (error)
device_power_up(resume_event(state));
return error;