hwmon: (pkgtemp) align driver initialization style with coretemp
[cascardo/linux.git] / drivers / hwmon / pkgtemp.c
index f119039..a8fc35e 100644 (file)
@@ -21,7 +21,6 @@
  */
 
 #include <linux/module.h>
-#include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/jiffies.h>
@@ -35,6 +34,7 @@
 #include <linux/cpu.h>
 #include <asm/msr.h>
 #include <asm/processor.h>
+#include <asm/smp.h>
 
 #define DRVNAME        "pkgtemp"
 
@@ -340,7 +340,7 @@ exit:
 }
 
 #ifdef CONFIG_HOTPLUG_CPU
-static void pkgtemp_device_remove(unsigned int cpu)
+static void __cpuinit pkgtemp_device_remove(unsigned int cpu)
 {
        struct pdev_entry *p;
        unsigned int i;
@@ -392,7 +392,6 @@ static struct notifier_block pkgtemp_cpu_notifier __refdata = {
 static int __init pkgtemp_init(void)
 {
        int i, err = -ENODEV;
-       struct pdev_entry *p, *n;
 
        /* quick check if we run Intel */
        if (cpu_data(0).x86_vendor != X86_VENDOR_INTEL)
@@ -402,31 +401,25 @@ static int __init pkgtemp_init(void)
        if (err)
                goto exit;
 
-       for_each_online_cpu(i) {
-               err = pkgtemp_device_add(i);
-               if (err)
-                       goto exit_devices_unreg;
-       }
+       for_each_online_cpu(i)
+               pkgtemp_device_add(i);
+
+#ifndef CONFIG_HOTPLUG_CPU
        if (list_empty(&pdev_list)) {
                err = -ENODEV;
                goto exit_driver_unreg;
        }
+#endif
 
 #ifdef CONFIG_HOTPLUG_CPU
        register_hotcpu_notifier(&pkgtemp_cpu_notifier);
 #endif
        return 0;
 
-exit_devices_unreg:
-       mutex_lock(&pdev_list_mutex);
-       list_for_each_entry_safe(p, n, &pdev_list, list) {
-               platform_device_unregister(p->pdev);
-               list_del(&p->list);
-               kfree(p);
-       }
-       mutex_unlock(&pdev_list_mutex);
+#ifndef CONFIG_HOTPLUG_CPU
 exit_driver_unreg:
        platform_driver_unregister(&pkgtemp_driver);
+#endif
 exit:
        return err;
 }