On 07.07.2016 15:41, Peter Krempa wrote: > Allow to store driver specific data on a per-vcpu basis. > > Move of the virDomainDef*Vcpus* functions was necessary as > virDomainXMLOptionPtr was declared below this block and I didn't want to > split the function headers. > --- > src/conf/domain_conf.c | 28 +++++++++++++++++++++------- > src/conf/domain_conf.h | 22 ++++++++++++++-------- > src/hyperv/hyperv_driver.c | 3 ++- > src/libxl/libxl_driver.c | 4 ++-- > src/lxc/lxc_native.c | 2 +- > src/openvz/openvz_conf.c | 2 +- > src/openvz/openvz_driver.c | 16 ++++++++++------ > src/phyp/phyp_driver.c | 2 +- > src/qemu/qemu_driver.c | 2 +- > src/qemu/qemu_parse_command.c | 9 +++++---- > src/test/test_driver.c | 4 +++- > src/vbox/vbox_common.c | 4 ++-- > src/vmx/vmx.c | 2 +- > src/xen/xm_internal.c | 2 +- > src/xenapi/xenapi_driver.c | 2 +- > src/xenconfig/xen_common.c | 13 ++++++++----- > src/xenconfig/xen_common.h | 3 ++- > src/xenconfig/xen_sxpr.c | 2 +- > src/xenconfig/xen_xl.c | 3 ++- > src/xenconfig/xen_xm.c | 3 ++- > 20 files changed, 81 insertions(+), 47 deletions(-) You forgot to update Virtuozzo (vz) driver. > > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index c2d7259..e660f8e 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -1307,12 +1307,23 @@ void virDomainLeaseDefFree(virDomainLeaseDefPtr def) > > > static virDomainVcpuDefPtr > -virDomainVcpuDefNew(void) > +virDomainVcpuDefNew(virDomainXMLOptionPtr xmlopt) > { > + virObjectPtr priv = NULL; > virDomainVcpuDefPtr ret; > > - ignore_value(VIR_ALLOC(ret)); > + if (xmlopt && xmlopt->privateData.vcpuNew && > + !(priv = xmlopt->privateData.vcpuNew())) > + goto cleanup; > + > + if (VIR_ALLOC(ret) < 0) > + goto cleanup; > + > + ret->privateData = priv; > + priv = NULL; > > + cleanup: > + virObjectUnref(priv); > return ret; Funny, my compiler fails to see that @ret might be used uninitialized here.. All that's needed is just vcpuNew() function to fail. Initialize the @ret properly please. > } > ACK if you squash this in: diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 9d0bc0d..7871230 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -1309,7 +1309,8 @@ prlsdkConvertDomainState(VIRTUAL_MACHINE_STATE domainState, static int prlsdkConvertCpuInfo(PRL_HANDLE sdkdom, - virDomainDefPtr def) + virDomainDefPtr def, + virDomainXMLOptionPtr xmlopt) { char *buf; int hostcpus; @@ -1327,7 +1328,7 @@ prlsdkConvertCpuInfo(PRL_HANDLE sdkdom, if (cpuCount > hostcpus) cpuCount = hostcpus; - if (virDomainDefSetVcpusMax(def, cpuCount) < 0) + if (virDomainDefSetVcpusMax(def, cpuCount, xmlopt) < 0) goto cleanup; if (virDomainDefSetVcpus(def, cpuCount) < 0) @@ -1706,7 +1707,7 @@ prlsdkLoadDomain(vzDriverPtr driver, virDomainObjPtr dom) convert to Kbytes */ def->mem.cur_balloon = ram << 10; - if (prlsdkConvertCpuInfo(sdkdom, def) < 0) + if (prlsdkConvertCpuInfo(sdkdom, def, driver->xmlopt) < 0) goto error; if (prlsdkConvertCpuMode(sdkdom, def) < 0) Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list