summaryrefslogtreecommitdiffstats
path: root/drivers/thermal
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2011-11-06 14:21:38 +0100
committerLen Brown <len.brown@intel.com>2011-11-06 20:38:49 -0500
commit51e20d0e3a60cf46b52ee1af598a35834919ed27 (patch)
tree88cc982dbe78035d8c58e90f02f86cf100c7bd0a /drivers/thermal
parent4505a2015f4c4b2f21137cc3a6b7400b0f3e073e (diff)
downloadlinux-51e20d0e3a60cf46b52ee1af598a35834919ed27.tar.gz
linux-51e20d0e3a60cf46b52ee1af598a35834919ed27.tar.bz2
linux-51e20d0e3a60cf46b52ee1af598a35834919ed27.zip
thermal: Prevent polling from happening during system suspend
The thermal driver should use a freezable workqueue to schedule polling to prevent thermal_zone_device_update() from being run during system suspend, when the devices it relies on may be inactive. Make it use the system freezable workqueue for this purpose. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/thermal')
-rw-r--r--drivers/thermal/thermal_sys.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index 708f8e92771a..dd9a5743fa99 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c
@@ -678,10 +678,10 @@ static void thermal_zone_device_set_polling(struct thermal_zone_device *tz,
return;
if (delay > 1000)
- schedule_delayed_work(&(tz->poll_queue),
+ queue_delayed_work(system_freezable_wq, &(tz->poll_queue),
round_jiffies(msecs_to_jiffies(delay)));
else
- schedule_delayed_work(&(tz->poll_queue),
+ queue_delayed_work(system_freezable_wq, &(tz->poll_queue),
msecs_to_jiffies(delay));
}