diff options
Diffstat (limited to 'drivers/hwmon/via-cputemp.c')
| -rw-r--r-- | drivers/hwmon/via-cputemp.c | 5 | 
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/hwmon/via-cputemp.c b/drivers/hwmon/via-cputemp.c index ee4ebc198a9..2e56c6ce9fb 100644 --- a/drivers/hwmon/via-cputemp.c +++ b/drivers/hwmon/via-cputemp.c @@ -328,6 +328,7 @@ static int __init via_cputemp_init(void)  	if (err)  		goto exit; +	get_online_cpus();  	for_each_online_cpu(i) {  		struct cpuinfo_x86 *c = &cpu_data(i); @@ -347,12 +348,14 @@ static int __init via_cputemp_init(void)  #ifndef CONFIG_HOTPLUG_CPU  	if (list_empty(&pdev_list)) { +		put_online_cpus();  		err = -ENODEV;  		goto exit_driver_unreg;  	}  #endif  	register_hotcpu_notifier(&via_cputemp_cpu_notifier); +	put_online_cpus();  	return 0;  #ifndef CONFIG_HOTPLUG_CPU @@ -367,6 +370,7 @@ static void __exit via_cputemp_exit(void)  {  	struct pdev_entry *p, *n; +	get_online_cpus();  	unregister_hotcpu_notifier(&via_cputemp_cpu_notifier);  	mutex_lock(&pdev_list_mutex);  	list_for_each_entry_safe(p, n, &pdev_list, list) { @@ -375,6 +379,7 @@ static void __exit via_cputemp_exit(void)  		kfree(p);  	}  	mutex_unlock(&pdev_list_mutex); +	put_online_cpus();  	platform_driver_unregister(&via_cputemp_driver);  }  |