aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2016-11-21 13:15:32 +0100
committerThomas Gleixner <tglx@linutronix.de>2016-11-22 23:34:38 +0100
commit33d97302eb502b72b76107d3122afbf18b09b3ec (patch)
tree53262702b2927e230b6a410b77952702ddd3bae4
parentx86/mce/therm_throt: Convert to hotplug state machine (diff)
downloadlinux-dev-33d97302eb502b72b76107d3122afbf18b09b3ec.tar.xz
linux-dev-33d97302eb502b72b76107d3122afbf18b09b3ec.zip
x86/mce/therm_throt: Move hotplug callbacks to online
No point to have the sysfs files around before the cpu is online and no point to have them around until the cpu is dead. Get rid of the explicit state. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Sebastian Siewior <bigeasy@linutronix.de> Cc: Tony Luck <tony.luck@intel.com> Cc: Borislav Petkov <bp@alien8.de>
-rw-r--r--arch/x86/kernel/cpu/mcheck/therm_throt.c13
-rw-r--r--include/linux/cpuhotplug.h1
2 files changed, 8 insertions, 6 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
index 7f56620735ca..e1d74fd79d5f 100644
--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -271,14 +271,14 @@ static void thermal_throttle_remove_dev(struct device *dev)
}
/* Get notified when a cpu comes on/off. Be hotplug friendly. */
-static int thermal_throttle_prepare(unsigned int cpu)
+static int thermal_throttle_online(unsigned int cpu)
{
struct device *dev = get_cpu_device(cpu);
return thermal_throttle_add_dev(dev, cpu);
}
-static int thermal_throttle_dead(unsigned int cpu)
+static int thermal_throttle_offline(unsigned int cpu)
{
struct device *dev = get_cpu_device(cpu);
@@ -288,12 +288,15 @@ static int thermal_throttle_dead(unsigned int cpu)
static __init int thermal_throttle_init_device(void)
{
+ int ret;
+
if (!atomic_read(&therm_throt_en))
return 0;
- return cpuhp_setup_state(CPUHP_X86_THERM_PREPARE, "x86/therm:prepare",
- thermal_throttle_prepare,
- thermal_throttle_dead);
+ ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "x86/therm:online",
+ thermal_throttle_online,
+ thermal_throttle_offline);
+ return ret < 0 ? ret : 0;
}
device_initcall(thermal_throttle_init_device);
diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
index aea6c6a63139..79b96f647d64 100644
--- a/include/linux/cpuhotplug.h
+++ b/include/linux/cpuhotplug.h
@@ -59,7 +59,6 @@ enum cpuhp_state {
CPUHP_BLK_MQ_PREPARE,
CPUHP_NET_FLOW_PREPARE,
CPUHP_TOPOLOGY_PREPARE,
- CPUHP_X86_THERM_PREPARE,
CPUHP_TIMERS_DEAD,
CPUHP_NOTF_ERR_INJ_PREPARE,
CPUHP_MIPS_SOC_PREPARE,