cpu hotplug: thermal_throttle: fix cpu hotplug error handling
Do thermal_throttle_add_dev() in CPU_UP_PREPARE instead of CPU_ONLINE. Cc: Dmitriy Zavin <dmitriyz@google.com> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Gautham R Shenoy <ego@in.ibm.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Cc: Andi Kleen <ak@suse.de> Cc: Jan Beulich <jbeulich@novell.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9780e3e968
commit
c7e38a9c27
@ -131,17 +131,19 @@ static __cpuinit int thermal_throttle_cpu_callback(struct notifier_block *nfb,
|
|||||||
{
|
{
|
||||||
unsigned int cpu = (unsigned long)hcpu;
|
unsigned int cpu = (unsigned long)hcpu;
|
||||||
struct sys_device *sys_dev;
|
struct sys_device *sys_dev;
|
||||||
int err;
|
int err = 0;
|
||||||
|
|
||||||
sys_dev = get_cpu_sysdev(cpu);
|
sys_dev = get_cpu_sysdev(cpu);
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case CPU_ONLINE:
|
case CPU_UP_PREPARE:
|
||||||
case CPU_ONLINE_FROZEN:
|
case CPU_UP_PREPARE_FROZEN:
|
||||||
mutex_lock(&therm_cpu_lock);
|
mutex_lock(&therm_cpu_lock);
|
||||||
err = thermal_throttle_add_dev(sys_dev);
|
err = thermal_throttle_add_dev(sys_dev);
|
||||||
mutex_unlock(&therm_cpu_lock);
|
mutex_unlock(&therm_cpu_lock);
|
||||||
WARN_ON(err);
|
WARN_ON(err);
|
||||||
break;
|
break;
|
||||||
|
case CPU_UP_CANCELED:
|
||||||
|
case CPU_UP_CANCELED_FROZEN:
|
||||||
case CPU_DEAD:
|
case CPU_DEAD:
|
||||||
case CPU_DEAD_FROZEN:
|
case CPU_DEAD_FROZEN:
|
||||||
mutex_lock(&therm_cpu_lock);
|
mutex_lock(&therm_cpu_lock);
|
||||||
@ -149,7 +151,7 @@ static __cpuinit int thermal_throttle_cpu_callback(struct notifier_block *nfb,
|
|||||||
mutex_unlock(&therm_cpu_lock);
|
mutex_unlock(&therm_cpu_lock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return NOTIFY_OK;
|
return err ? NOTIFY_BAD : NOTIFY_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct notifier_block thermal_throttle_cpu_notifier __cpuinitdata =
|
static struct notifier_block thermal_throttle_cpu_notifier __cpuinitdata =
|
||||||
|
Loading…
Reference in New Issue
Block a user