From: Thomas Gleixner Date: Mon, 21 Nov 2016 12:07:34 +0000 (+0100) Subject: x86/cpuid: Move the hotplug callbacks to online X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=ee92be9b0d7ad34cb58b61d5c0933d2e5ff7c31d;p=linux.git x86/cpuid: Move the hotplug callbacks to online No point to have this file around before the cpu is online and no point to have it around until the cpu is dead. Get rid of the explicit state. Signed-off-by: Thomas Gleixner Cc: Sebastian Siewior --- diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c index fd85e93e06919..373e372a0e1c2 100644 --- a/arch/x86/kernel/cpuid.c +++ b/arch/x86/kernel/cpuid.c @@ -45,6 +45,7 @@ #include static struct class *cpuid_class; +static enum cpuhp_state cpuhp_cpuid_state; struct cpuid_regs { u32 eax, ebx, ecx, edx; @@ -152,11 +153,12 @@ static int __init cpuid_init(void) } cpuid_class->devnode = cpuid_devnode; - err = cpuhp_setup_state(CPUHP_X86_CPUID_PREPARE, "x86/cpuid:prepare", + err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "x86/cpuid:online", cpuid_device_create, cpuid_device_destroy); - if (err) + if (err < 0) goto out_class; + cpuhp_cpuid_state = err; return 0; out_class: @@ -165,15 +167,14 @@ out_chrdev: __unregister_chrdev(CPUID_MAJOR, 0, NR_CPUS, "cpu/cpuid"); return err; } +module_init(cpuid_init); static void __exit cpuid_exit(void) { - cpuhp_remove_state(CPUHP_X86_CPUID_PREPARE); + cpuhp_remove_state(cpuhp_cpuid_state); class_destroy(cpuid_class); __unregister_chrdev(CPUID_MAJOR, 0, NR_CPUS, "cpu/cpuid"); } - -module_init(cpuid_init); module_exit(cpuid_exit); MODULE_AUTHOR("H. Peter Anvin "); diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h index bc340ef2f2009..79b96f647d643 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_CPUID_PREPARE, CPUHP_TIMERS_DEAD, CPUHP_NOTF_ERR_INJ_PREPARE, CPUHP_MIPS_SOC_PREPARE,