powernow-k8: Cleanup module request
authorBorislav Petkov <bp@suse.de>
Sun, 20 Jan 2013 10:24:29 +0000 (10:24 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 1 Feb 2013 23:01:15 +0000 (00:01 +0100)
Check whether we've actually already loaded acpi-cpufreq before
requesting it.

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 056faf6..0234d0c 100644 (file)
@@ -1249,6 +1249,24 @@ static struct cpufreq_driver cpufreq_amd64_driver = {
        .attr           = powernow_k8_attr,
 };
 
+static void __request_acpi_cpufreq(void)
+{
+       const char *cur_drv, *drv = "acpi-cpufreq";
+
+       cur_drv = cpufreq_get_current_driver();
+       if (!cur_drv)
+               goto request;
+
+       if (strncmp(cur_drv, drv, min_t(size_t, strlen(cur_drv), strlen(drv))))
+               pr_warn(PFX "WTF driver: %s\n", cur_drv);
+
+       return;
+
+ request:
+       pr_warn(PFX "This CPU is not supported anymore, using acpi-cpufreq instead.\n");
+       request_module(drv);
+}
+
 /* driver entry point for init */
 static int __cpuinit powernowk8_init(void)
 {
@@ -1256,8 +1274,7 @@ static int __cpuinit powernowk8_init(void)
        int rv;
 
        if (static_cpu_has(X86_FEATURE_HW_PSTATE)) {
-               pr_warn(PFX "this CPU is not supported anymore, using acpi-cpufreq instead.\n");
-               request_module("acpi-cpufreq");
+               __request_acpi_cpufreq();
                return -ENODEV;
        }