aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhang, Yang Z <yang.z.zhang@intel.com>2012-07-24 10:29:18 +0100
committerZhang, Yang Z <yang.z.zhang@intel.com>2012-07-24 10:29:18 +0100
commitf2c89c53c44d9d8adbba43db6f02701c8b155383 (patch)
tree4451f5aa82dff6835f5f4f855275158710469a13
parente5ca6b5b9b2462d3ac2ab5d455d2bf72951f0b04 (diff)
downloadxen-f2c89c53c44d9d8adbba43db6f02701c8b155383.tar.gz
xen-f2c89c53c44d9d8adbba43db6f02701c8b155383.tar.bz2
xen-f2c89c53c44d9d8adbba43db6f02701c8b155383.zip
libxl: fix bug the number of running vcpu inconsistent with config file
The following patch will fix the bug 1825. http://bugzilla.xen.org/bugzilla/show_bug.cgi?id=1825 When using memcpy to update vcpu_online, the high bits of vcpu_online may unmodified if the size of avail_vcpus less than vcpu_online. So we need to clear it before the memory copying. Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com> Acked-by: Ian Campbell <ian.campbelL@citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
-rw-r--r--tools/libxl/libxl_dom.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
index b6111ad434..cecda9ba84 100644
--- a/tools/libxl/libxl_dom.c
+++ b/tools/libxl/libxl_dom.c
@@ -357,6 +357,7 @@ static int hvm_build_set_params(xc_interface *handle, uint32_t domid,
va_hvm = (struct hvm_info_table *)(va_map + HVM_INFO_OFFSET);
va_hvm->apic_mode = libxl_defbool_val(info->u.hvm.apic);
va_hvm->nr_vcpus = info->max_vcpus;
+ memset(va_hvm->vcpu_online, 0, sizeof(va_hvm->vcpu_online));
memcpy(va_hvm->vcpu_online, info->avail_vcpus.map, info->avail_vcpus.size);
for (i = 0, sum = 0; i < va_hvm->length; i++)
sum += ((uint8_t *) va_hvm)[i];