summaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/pkgtemp.c
diff options
context:
space:
mode:
authorChen Gong <gong.chen@linux.intel.com>2010-10-08 05:53:35 +0000
committerGuenter Roeck <guenter.roeck@ericsson.com>2010-10-25 14:11:20 -0700
commitfd53d08465a79d742a297be1d7d173f8a13972a6 (patch)
tree600fcad9649d689916153bc7fac38b0c17d46da2 /drivers/hwmon/pkgtemp.c
parente5f5c99a39375ce533aacfdfb269978070121e1c (diff)
downloadlinux-fd53d08465a79d742a297be1d7d173f8a13972a6.tar.gz
linux-fd53d08465a79d742a297be1d7d173f8a13972a6.tar.bz2
linux-fd53d08465a79d742a297be1d7d173f8a13972a6.zip
hwmon: (pkgtemp) align driver initialization style with coretemp
pkgtemp is derived from coretemp, so some reasonable logics should be applied onto pkgtemp, too. Such as the init logic here. Signed-off-by: Chen Gong <gong.chen@linux.intel.com> Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Diffstat (limited to 'drivers/hwmon/pkgtemp.c')
-rw-r--r--drivers/hwmon/pkgtemp.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/hwmon/pkgtemp.c b/drivers/hwmon/pkgtemp.c
index c9f652d84ea1..a8fc35e854c7 100644
--- a/drivers/hwmon/pkgtemp.c
+++ b/drivers/hwmon/pkgtemp.c
@@ -34,6 +34,7 @@
#include <linux/cpu.h>
#include <asm/msr.h>
#include <asm/processor.h>
+#include <asm/smp.h>
#define DRVNAME "pkgtemp"
@@ -391,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)
@@ -401,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;
}