This time do not require an address cache as a parameter.
Simplify qemuDomainAttachChrDeviceAssignAddr to not generate
the virtio serial address cache for devices of other types.
---
src/conf/domain_addr.c | 21 +
src/conf/domain_addr.h | 6 ++
src/libvirt_private.syms | 1 +
src/qemu/qemu_hotplug.c | 11 ++-
4 files changed, 30 insertions(+), 9 deletions(-)
diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
index 065baa7..92a5516 100644
--- a/src/conf/domain_addr.c
+++ b/src/conf/domain_addr.c
@@ -1167,6 +1167,27 @@
virDomainVirtioSerialAddrAutoAssignFromCache(virDomainDefPtr def,
return virDomainVirtioSerialAddrAssign(def, addrs, info, allowZero,
portOnly);
}
+int
+virDomainVirtioSerialAddrAutoAssign(virDomainDefPtr def,
+virDomainDeviceInfoPtr info,
+bool allowZero)
+{
+virDomainVirtioSerialAddrSetPtr addrs = NULL;
+int ret = -1;
+
+if (!(addrs = virDomainVirtioSerialAddrSetCreateFromDomain(def)))
+goto cleanup;
+
+if (virDomainVirtioSerialAddrAutoAssignFromCache(def, addrs, info,
allowZero) < 0)
+goto cleanup;
+
+ret = 0;
+
+ cleanup:
+virDomainVirtioSerialAddrSetFree(addrs);
+return ret;
+}
+
int
virDomainVirtioSerialAddrAssign(virDomainDefPtr def,
diff --git a/src/conf/domain_addr.h b/src/conf/domain_addr.h
index b0fadc1..141f83b 100644
--- a/src/conf/domain_addr.h
+++ b/src/conf/domain_addr.h
@@ -229,6 +229,12 @@
virDomainVirtioSerialAddrAutoAssignFromCache(virDomainDefPtr def,
ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
int
+virDomainVirtioSerialAddrAutoAssign(virDomainDefPtr def,
+virDomainDeviceInfoPtr info,
+bool allowZero)
+ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+
+int
virDomainVirtioSerialAddrAssign(virDomainDefPtr def,
virDomainVirtioSerialAddrSetPtr addrs,
virDomainDeviceInfoPtr info,
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 8bc2584..ce9c4c4 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -123,6 +123,7 @@ virDomainUSBAddressSetAddHub;
virDomainUSBAddressSetCreate;
virDomainUSBAddressSetFree;
virDomainVirtioSerialAddrAssign;
+virDomainVirtioSerialAddrAutoAssign;
virDomainVirtioSerialAddrAutoAssignFromCache;
virDomainVirtioSerialAddrIsComplete;
virDomainVirtioSerialAddrRelease;
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 7bd38ab..cbdcd81 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1641,15 +1641,10 @@ qemuDomainAttachChrDeviceAssignAddr(virDomainDefPtr def,
virDomainChrDefPtr chr)
{
int ret = -1;
-virDomainVirtioSerialAddrSetPtr vioaddrs = NULL;
-
-if (!(vioaddrs = virDomainVirtioSerialAddrSetCreateFromDomain(def)))
-goto cleanup;
if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE &&
chr->targetType == VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_VIRTIO) {
-if (virDomainVirtioSerialAddrAutoAssignFromCache(NULL, vioaddrs,
- >info, true) < 0)
+if (virDomainVirtioSerialAddrAutoAssign(def, >info, true) < 0)
goto cleanup;
ret = 1;
@@ -1667,8 +1662,7 @@ qemuDomainAttachChrDeviceAssignAddr(virDomainDefPtr def,
} else if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
chr->targetType == VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO) {
-if (virDomainVirtioSerialAddrAutoAssignFromCache(NULL, vioaddrs,
- >info, false) <
0)
+if (virDomainVirtioSerialAddrAutoAssign(def, >info, false) < 0)
goto cleanup;
ret = 1;
}
@@ -1686,7 +1680,6 @@ qemuDomainAttachChrDeviceAssignAddr(virDomainDefPtr def,
ret = 0;
cleanup:
-virDomainVirtioSerialAddrSetFree(vioaddrs);
return ret;
}
--
2.7.3
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list