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-unstable] x86: Fix RevF detection in powernow.c

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: Fix RevF detection in powernow.c
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 23 Oct 2009 02:40:16 -0700
Delivery-date: Fri, 23 Oct 2009 02:40:48 -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 1256289112 -3600
# Node ID 51b031b0737e4371ec2a3e1f37835e7c017d6537
# Parent  b5c6c4a584951a653dca20e168cc40dced1e6bae
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/arch/x86/acpi/cpufreq/powernow.c |   47 ++++-------------------------------
 xen/drivers/cpufreq/cpufreq.c        |    3 ++
 2 files changed, 9 insertions(+), 41 deletions(-)

diff -r b5c6c4a58495 -r 51b031b0737e xen/arch/x86/acpi/cpufreq/powernow.c
--- a/xen/arch/x86/acpi/cpufreq/powernow.c      Fri Oct 23 10:09:37 2009 +0100
+++ b/xen/arch/x86/acpi/cpufreq/powernow.c      Fri Oct 23 10:11:52 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 b5c6c4a58495 -r 51b031b0737e xen/drivers/cpufreq/cpufreq.c
--- a/xen/drivers/cpufreq/cpufreq.c     Fri Oct 23 10:09:37 2009 +0100
+++ b/xen/drivers/cpufreq/cpufreq.c     Fri Oct 23 10:11:52 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-unstable] x86: Fix RevF detection in powernow.c, Xen patchbot-unstable <=