x86/mce/therm_throt: Move hotplug callbacks to online
authorThomas Gleixner <tglx@linutronix.de>
Mon, 21 Nov 2016 12:15:32 +0000 (13:15 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 22 Nov 2016 22:34:38 +0000 (23:34 +0100)
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>
arch/x86/kernel/cpu/mcheck/therm_throt.c
include/linux/cpuhotplug.h

index 7f56620..e1d74fd 100644 (file)
@@ -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);
 
index aea6c6a..79b96f6 100644 (file)
@@ -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,