From f2c89c53c44d9d8adbba43db6f02701c8b155383 Mon Sep 17 00:00:00 2001 From: "Zhang, Yang Z" Date: Tue, 24 Jul 2012 10:29:18 +0100 Subject: 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 Acked-by: Ian Campbell Committed-by: Ian Campbell --- tools/libxl/libxl_dom.c | 1 + 1 file changed, 1 insertion(+) 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]; -- cgit v1.2.3