]> rtime.felk.cvut.cz Git - linux-imx.git/commitdiff
powernow-k8: Cleanup init function
authorBorislav Petkov <bp@suse.de>
Sun, 20 Jan 2013 10:24:30 +0000 (10:24 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 1 Feb 2013 23:01:15 +0000 (00:01 +0100)
Make it hotplug-safe and cleanup formatting.

Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/powernow-k8.c

index 0234d0c6d68c69467a0bfc58e0edbdd3740979bd..d13a13678b5f1989fd7906d2fb7dd4bcc61e6e06 100644 (file)
@@ -1271,7 +1271,7 @@ static void __request_acpi_cpufreq(void)
 static int __cpuinit powernowk8_init(void)
 {
        unsigned int i, supported_cpus = 0;
-       int rv;
+       int ret;
 
        if (static_cpu_has(X86_FEATURE_HW_PSTATE)) {
                __request_acpi_cpufreq();
@@ -1281,24 +1281,27 @@ static int __cpuinit powernowk8_init(void)
        if (!x86_match_cpu(powernow_k8_ids))
                return -ENODEV;
 
+       get_online_cpus();
        for_each_online_cpu(i) {
-               int rc;
-               smp_call_function_single(i, check_supported_cpu, &rc, 1);
-               if (rc == 0)
+               smp_call_function_single(i, check_supported_cpu, &ret, 1);
+               if (!ret)
                        supported_cpus++;
        }
 
-       if (supported_cpus != num_online_cpus())
+       if (supported_cpus != num_online_cpus()) {
+               put_online_cpus();
                return -ENODEV;
+       }
+       put_online_cpus();
 
-       rv = cpufreq_register_driver(&cpufreq_amd64_driver);
+       ret = cpufreq_register_driver(&cpufreq_amd64_driver);
+       if (ret)
+               return ret;
 
-       if (!rv)
-               pr_info(PFX "Found %d %s (%d cpu cores) (" VERSION ")\n",
-                       num_online_nodes(), boot_cpu_data.x86_model_id,
-                       supported_cpus);
+       pr_info(PFX "Found %d %s (%d cpu cores) (" VERSION ")\n",
+               num_online_nodes(), boot_cpu_data.x86_model_id, supported_cpus);
 
-       return rv;
+       return ret;
 }
 
 /* driver entry point for term */