[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen stable-4.2] libxl: In libxl_set_vcpuonline check for maximum number of VCPUs against the cpumap.
commit 8722647e778971977dac4ce586ae5a44ae41e660 Author: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> AuthorDate: Fri Apr 3 16:02:29 2015 -0400 Commit: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CommitDate: Wed Aug 12 13:09:54 2015 +0100 libxl: In libxl_set_vcpuonline check for maximum number of VCPUs against the cpumap. There is no sense in trying to online (or offline) CPUs when the size of cpumap is greater than the maximum number of VCPUs the guest can go to. As such fail the operation if the count of CPUs to online is greater than what the guest started with. For the offline case we do not check (as the bits are unset in the cpumap) and let it go through. We coalesce some of the underlying libxl_set_vcpuonline code together which was duplicated in QMP and XenStore codepaths. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> (cherry picked from commit d83bf9d224eeb5b73b93c2703f7dba4473cfa89c) Conflicts: tools/libxl/libxl.c Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> (cherry picked from commit 0d8cbcad03764e42ff2f0d224aff883c3734d782) Conflicts: tools/libxl/libxl.c Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> (cherry picked from commit ca0f468192d12d8d30c2a48a37c5d3460a464a29) Conflicts: tools/libxl/libxl.c Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> (cherry picked from commit 116bbc6062cd90b98f746c3a058f4ec24347527d) Conflicts: tools/libxl/libxl.c Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- tools/libxl/libxl.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 99cfc6e..b0f7e8b 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -3963,12 +3963,22 @@ int libxl_set_vcpuonline(libxl_ctx *ctx, uint32_t domid, libxl_bitmap *cpumap) libxl_dominfo info; char *dompath; xs_transaction_t t; - int i, rc = ERROR_FAIL; + int i, maxcpus, rc = ERROR_FAIL; if (libxl_domain_info(ctx, &info, domid) < 0) { LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "getting domain info list"); goto out; } + + maxcpus = libxl_bitmap_count_set(cpumap); + if (maxcpus > info.vcpu_max_id + 1) + { + LOGE(ERROR, "Requested %d VCPUs, however maxcpus is %d!", + maxcpus, info.vcpu_max_id + 1); + rc = ERROR_FAIL; + goto out; + } + if (!(dompath = libxl__xs_get_dompath(gc, domid))) goto out; -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.2 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |