WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-3.4-testing] x86: Fix RevF detection in powernow.c

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-3.4-testing] x86: Fix RevF detection in powernow.c
From: "Xen patchbot-3.4-testing" <patchbot-3.4-testing@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 23 Oct 2009 02:40:44 -0700
Delivery-date: Fri, 23 Oct 2009 02:42:41 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1256290298 -3600
# Node ID 0af17c0535656eab5d9c142e38fe71a873683205
# Parent  1e097d7134fc2ac6282b5767ac3bc3d0554d2c38
x86: Fix RevF detection in powernow.c

The PowerNow! driver does not support RevF and earlier parts.
The current code checks for RevF processors in a function that
is not called.  Change the code path so that RevF processors
are detected and the driver fails registration.

Also fix cpufreq_add_cpu() to handle unsuccessful registration.

Signed-off-by: Mark Langsdorf <mark.langsdorf@xxxxxxx>
xen-unstable changeset:   20361:51b031b0737e
xen-unstable date:        Fri Oct 23 10:11:52 2009 +0100
---
 xen/arch/x86/acpi/cpufreq/powernow.c |   47 ++++-------------------------------
 xen/drivers/cpufreq/cpufreq.c        |    3 ++
 2 files changed, 9 insertions(+), 41 deletions(-)

diff -r 1e097d7134fc -r 0af17c053565 xen/arch/x86/acpi/cpufreq/powernow.c
--- a/xen/arch/x86/acpi/cpufreq/powernow.c      Fri Oct 23 10:31:11 2009 +0100
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c      Fri Oct 23 10:31:38 2009 +0100
@@ -274,58 +274,23 @@ static struct cpufreq_driver powernow_cp
 
 unsigned int powernow_register_driver()
 {
-    unsigned int ret;
-    ret = cpufreq_register_driver(&powernow_cpufreq_driver);
-    return ret;
-}
-
-int powernow_cpufreq_init(void)
-{
     unsigned int i, ret = 0;
-    unsigned int max_dom = 0;
-    cpumask_t *pt;
-    unsigned long *dom_mask;
 
     for_each_online_cpu(i) {
         struct cpuinfo_x86 *c = &cpu_data[i];
-       if (c->x86_vendor != X86_VENDOR_AMD)
+        if (c->x86_vendor != X86_VENDOR_AMD)
             ret = -ENODEV;
-        else 
+        else
         {
             u32 eax, ebx, ecx, edx;
             cpuid(CPUID_FREQ_VOLT_CAPABILITIES, &eax, &ebx, &ecx, &edx);
             if ((edx & USE_HW_PSTATE) != USE_HW_PSTATE)
                 ret = -ENODEV;
-       }
+        }
         if (ret)
             return ret;
-        if (max_dom < processor_pminfo[i]->perf.domain_info.domain)
-            max_dom = processor_pminfo[i]->perf.domain_info.domain;
-    }
-    max_dom++;
-
-    dom_mask = xmalloc_array(unsigned long, BITS_TO_LONGS(max_dom));
-    if (!dom_mask)
-        return -ENOMEM;
-    bitmap_zero(dom_mask, max_dom);
-
-    pt = xmalloc_array(cpumask_t, max_dom);
-    if (!pt)
-        return -ENOMEM;
-    memset(pt, 0, max_dom * sizeof(cpumask_t));
-
-    /* get cpumask of each psd domain */
-    for_each_online_cpu(i) {
-        __set_bit(processor_pminfo[i]->perf.domain_info.domain, dom_mask);
-        cpu_set(i, pt[processor_pminfo[i]->perf.domain_info.domain]);
-    }
-
-    for_each_online_cpu(i)
-        processor_pminfo[i]->perf.shared_cpu_map =
-            pt[processor_pminfo[i]->perf.domain_info.domain];
-
-    xfree(pt);
-    xfree(dom_mask);
-   
+    }
+
+    ret = cpufreq_register_driver(&powernow_cpufreq_driver);
     return ret;
 }
diff -r 1e097d7134fc -r 0af17c053565 xen/drivers/cpufreq/cpufreq.c
--- a/xen/drivers/cpufreq/cpufreq.c     Fri Oct 23 10:31:11 2009 +0100
+++ b/xen/drivers/cpufreq/cpufreq.c     Fri Oct 23 10:31:38 2009 +0100
@@ -143,6 +143,9 @@ int cpufreq_add_cpu(unsigned int cpu)
         !cpu_online(cpu))
         return -EINVAL;
 
+    if (!cpufreq_driver)
+        return 0;
+
     if (cpufreq_cpu_policy[cpu])
         return 0;
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-3.4-testing] x86: Fix RevF detection in powernow.c, Xen patchbot-3.4-testing <=