[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] x86 hvm cpuid: fix some problem with the hvm's cpuid configuration.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1209654516 -3600
# Node ID eb3437db158ba73d5df1ae93074916709e1dc481
# Parent  45c975a6554d75e6661996a1b97dcc8c01d49888
x86 hvm cpuid: fix some problem with the hvm's cpuid configuration.

  - When we overwrite a cpuid's input, apply the default policy
    for the other registers.
  - For the python binding, get unsigned long instead long.
  - Fix the multiple inputs cpuid's configuration parsing.

Signed-off-by: Jean Guyader <jean.guyader@xxxxxxxxxxxxx>
---
 tools/libxc/xc_cpuid_x86.c        |    3 +++
 tools/python/xen/lowlevel/xc/xc.c |    2 +-
 tools/python/xen/xm/create.py     |    4 +++-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff -r 45c975a6554d -r eb3437db158b tools/libxc/xc_cpuid_x86.c
--- a/tools/libxc/xc_cpuid_x86.c        Thu May 01 16:07:56 2008 +0100
+++ b/tools/libxc/xc_cpuid_x86.c        Thu May 01 16:08:36 2008 +0100
@@ -385,7 +385,10 @@ int xc_cpuid_set(
     for ( i = 0; i < 4; i++ )
     {
         if ( config[i] == NULL )
+        {
+            regs[i] = polregs[i];
             continue;
+        }
         
         config_transformed[i] = alloc_str();
 
diff -r 45c975a6554d -r eb3437db158b tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c Thu May 01 16:07:56 2008 +0100
+++ b/tools/python/xen/lowlevel/xc/xc.c Thu May 01 16:08:36 2008 +0100
@@ -696,7 +696,7 @@ static PyObject *pyxc_dom_set_cpuid(XcOb
     unsigned int input[2];
     char *regs[4], *regs_transform[4];
 
-    if ( !PyArg_ParseTuple(args, "iiOO", &domid,
+    if ( !PyArg_ParseTuple(args, "IIOO", &domid,
                            &input[0], &sub_input, &config) )
         return NULL;
 
diff -r 45c975a6554d -r eb3437db158b tools/python/xen/xm/create.py
--- a/tools/python/xen/xm/create.py     Thu May 01 16:07:56 2008 +0100
+++ b/tools/python/xen/xm/create.py     Thu May 01 16:08:36 2008 +0100
@@ -856,7 +856,9 @@ def preprocess_cpuid(vals, attr_name):
     if not vals.cpuid: return
     cpuid = {} 
     for cpuid_input in getattr(vals, attr_name):
-        cpuid_match = re.match(r"(?P<input>(0x)?[0-9A-Fa-f]+):(?P<regs>.*)", 
cpuid_input)
+        input_re = "(0x)?[0-9A-Fa-f]+(,(0x)?[0-9A-Fa-f]+)?"
+        cpuid_match = re.match(r'(?P<input>%s):(?P<regs>.*)' % \
+                               input_re, cpuid_input)
         if cpuid_match != None:
             res_cpuid = cpuid_match.groupdict()
             input = res_cpuid['input']

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.