Make common between Vcpu and IOThreads Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> --- src/conf/domain_conf.c | 15 ++++++++------- src/conf/domain_conf.h | 4 +++- src/libvirt_private.syms | 2 +- src/libxl/libxl_driver.c | 4 +++- src/qemu/qemu_driver.c | 16 ++++++++++++---- 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 19aa6f6..24c0d8e 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16754,16 +16754,17 @@ virDomainPinAdd(virDomainPinDefPtr **pindef_list, } void -virDomainVcpuPinDel(virDomainDefPtr def, int vcpu) +virDomainPinDel(virDomainPinDefPtr **pindef_list, + size_t *npin, + int id) { int n; - virDomainPinDefPtr *vcpupin_list = def->cputune.vcpupin; - for (n = 0; n < def->cputune.nvcpupin; n++) { - if (vcpupin_list[n]->id == vcpu) { - virBitmapFree(vcpupin_list[n]->cpumask); - VIR_FREE(vcpupin_list[n]); - VIR_DELETE_ELEMENT(def->cputune.vcpupin, n, def->cputune.nvcpupin); + for (n = 0; n < *npin; n++) { + if ((*pindef_list)[n]->id == id) { + virBitmapFree((*pindef_list)[n]->cpumask); + VIR_FREE((*pindef_list)[n]); + VIR_DELETE_ELEMENT(*pindef_list, n, *npin); return; } } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 1ba1ffe..c10e080 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2555,7 +2555,9 @@ int virDomainPinAdd(virDomainPinDefPtr **pindef_list, int maplen, int id); -void virDomainVcpuPinDel(virDomainDefPtr def, int vcpu); +void virDomainPinDel(virDomainPinDefPtr **pindef_list, + size_t *npin, + int vcpu); int virDomainEmulatorPinAdd(virDomainDefPtr def, unsigned char *cpumap, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 108e806..c453fb8 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -384,6 +384,7 @@ virDomainPinAdd; virDomainPinDefArrayFree; virDomainPinDefCopy; virDomainPinDefFree; +virDomainPinDel; virDomainPinFindByVcpu; virDomainPinIsDuplicate; virDomainPMSuspendedReasonTypeFromString; @@ -437,7 +438,6 @@ virDomainTPMBackendTypeToString; virDomainTPMDefFree; virDomainTPMModelTypeFromString; virDomainTPMModelTypeToString; -virDomainVcpuPinDel; virDomainVideoDefaultRAM; virDomainVideoDefaultType; virDomainVideoDefFree; diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index d1addf5..f738d8f 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -1990,7 +1990,9 @@ libxlDomainPinVcpuFlags(virDomainPtr dom, unsigned int vcpu, /* full bitmap means reset the settings (if any). */ if (virBitmapIsAllSet(pcpumap)) { - virDomainVcpuPinDel(targetDef, vcpu); + virDomainPinDel(&targetDef->cputune.vcpupin, + &targetDef->cputune.nvcpupin, + vcpu); goto done; } diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index db8cf4f..e4b6799 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -4656,7 +4656,9 @@ static int qemuDomainHotplugVcpus(virQEMUDriverPtr driver, } /* Free vcpupin setting */ - virDomainVcpuPinDel(vm->def, i); + virDomainPinDel(&vm->def->cputune.vcpupin, + &vm->def->cputune.nvcpupin, + i); } } @@ -4838,7 +4840,9 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus, /* remove vcpupin entries for vcpus that were unplugged */ if (nvcpus < persistentDef->vcpus) { for (i = persistentDef->vcpus; i >= nvcpus; i--) - virDomainVcpuPinDel(persistentDef, i); + virDomainPinDel(&persistentDef->cputune.vcpupin, + &persistentDef->cputune.nvcpupin, + i); } if (maximum) { @@ -5006,7 +5010,9 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, } if (doReset) { - virDomainVcpuPinDel(vm->def, vcpu); + virDomainPinDel(&vm->def->cputune.vcpupin, + &vm->def->cputune.nvcpupin, + vcpu); } else { if (vm->def->cputune.vcpupin) virDomainPinDefArrayFree(vm->def->cputune.vcpupin, @@ -5036,7 +5042,9 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, if (flags & VIR_DOMAIN_AFFECT_CONFIG) { if (doReset) { - virDomainVcpuPinDel(persistentDef, vcpu); + virDomainPinDel(&persistentDef->cputune.vcpupin, + &persistentDef->cputune.nvcpupin, + vcpu); } else { if (!persistentDef->cputune.vcpupin) { if (VIR_ALLOC(persistentDef->cputune.vcpupin) < 0) -- 2.1.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list