Make common between Vcpu and IOThreads
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
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