summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/hwmon/coretemp.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
index 984c02334910..c364bfd92d23 100644
--- a/drivers/hwmon/coretemp.c
+++ b/drivers/hwmon/coretemp.c
@@ -662,12 +662,12 @@ static int coretemp_cpu_online(unsigned int cpu)
* without thermal sensors will be filtered out.
*/
if (!cpu_has(c, X86_FEATURE_DTHERM))
- return 0;
+ return -ENODEV;
if (!pdev) {
/* Check the microcode version of the CPU */
if (chk_ucode_version(cpu))
- return 0;
+ return -EINVAL;
/*
* Alright, we have DTS support.
@@ -677,7 +677,7 @@ static int coretemp_cpu_online(unsigned int cpu)
*/
err = coretemp_device_add(cpu);
if (err)
- return 0;
+ return err;
pdev = coretemp_get_pdev(cpu);
/*
@@ -782,28 +782,14 @@ static int __init coretemp_init(void)
if (err)
return err;
- get_online_cpus();
err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "hwmon/coretemp:online",
coretemp_cpu_online, coretemp_cpu_offline);
if (err < 0)
- goto exit_driver_unreg;
+ goto outdrv;
coretemp_hp_online = err;
-
-#ifndef CONFIG_HOTPLUG_CPU
- if (list_empty(&pdev_list)) {
- err = -ENODEV;
- goto exit_hp_unreg;
- }
-#endif
- put_online_cpus();
return 0;
-#ifndef CONFIG_HOTPLUG_CPU
-exit_hp_unreg:
- cpuhp_remove_state(coretemp_hp_online);
- put_online_cpus();
-#endif
-exit_driver_unreg:
+outdrv:
platform_driver_unregister(&coretemp_driver);
return err;
}