diff options
author | Avi Kivity <avi@qumranet.com> | 2007-05-24 11:37:34 +0200 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-07-16 11:05:50 +0200 |
commit | 38ef6d195fb794e61a687ef8f5a37daf6044d576 (patch) | |
tree | 2657613a658dfc194fb960623e7d7a69d1d41aae /arch | |
parent | HOTPLUG: Adapt cpuset hotplug callback to CPU_DYING (diff) | |
download | linux-38ef6d195fb794e61a687ef8f5a37daf6044d576.tar.xz linux-38ef6d195fb794e61a687ef8f5a37daf6044d576.zip |
HOTPLUG: Adapt thermal throttle to CPU_DYING
CPU_DYING is notified in atomic context, so no taking mutexes here.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/kernel/cpu/mcheck/therm_throt.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/i386/kernel/cpu/mcheck/therm_throt.c b/arch/i386/kernel/cpu/mcheck/therm_throt.c index 7ba7c3abd3a4..1203dc5ab87a 100644 --- a/arch/i386/kernel/cpu/mcheck/therm_throt.c +++ b/arch/i386/kernel/cpu/mcheck/therm_throt.c @@ -134,19 +134,21 @@ static __cpuinit int thermal_throttle_cpu_callback(struct notifier_block *nfb, int err; sys_dev = get_cpu_sysdev(cpu); - mutex_lock(&therm_cpu_lock); switch (action) { case CPU_ONLINE: case CPU_ONLINE_FROZEN: + mutex_lock(&therm_cpu_lock); err = thermal_throttle_add_dev(sys_dev); + mutex_unlock(&therm_cpu_lock); WARN_ON(err); break; case CPU_DEAD: case CPU_DEAD_FROZEN: + mutex_lock(&therm_cpu_lock); thermal_throttle_remove_dev(sys_dev); + mutex_unlock(&therm_cpu_lock); break; } - mutex_unlock(&therm_cpu_lock); return NOTIFY_OK; } |