]> xenbits.xensource.com Git - libvirt.git/commitdiff
Introduce virDomainVirtioSerialAddrAutoAssign again
authorJán Tomko <jtomko@redhat.com>
Fri, 21 Oct 2016 11:09:36 +0000 (13:09 +0200)
committerJán Tomko <jtomko@redhat.com>
Thu, 27 Oct 2016 09:05:07 +0000 (11:05 +0200)
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.

Partially reverts commit 925fa4b.

src/conf/domain_addr.c
src/conf/domain_addr.h
src/libvirt_private.syms
src/qemu/qemu_hotplug.c

index 0578e02bd0313a64889676cc24b073e40c2a764c..2e0c9818db561d27cbb157ebe3e4edadaa0a9dbc 100644 (file)
@@ -1201,6 +1201,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,
index 147419a97fc5a57e09fb39a401f4c12479498b0b..7b6fff058a3298c9c21c73b84120b3adf69d081c 100644 (file)
@@ -230,6 +230,12 @@ virDomainVirtioSerialAddrAutoAssignFromCache(virDomainDefPtr def,
                                              bool allowZero)
     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,
index e78eeb6885d35a93fbe32360706037dde9a1b3f5..d2156bd72587c9eb1fee8e74c0e59946eccb6283 100644 (file)
@@ -123,6 +123,7 @@ virDomainUSBAddressSetAddHub;
 virDomainUSBAddressSetCreate;
 virDomainUSBAddressSetFree;
 virDomainVirtioSerialAddrAssign;
+virDomainVirtioSerialAddrAutoAssign;
 virDomainVirtioSerialAddrAutoAssignFromCache;
 virDomainVirtioSerialAddrIsComplete;
 virDomainVirtioSerialAddrRelease;
index 67688e16d0f0edc9bf3eaaf141b5c1bb72cebee1..61edfe706187553a4f5092c5e2a1931fff9f1c6e 100644 (file)
@@ -1763,15 +1763,10 @@ qemuDomainAttachChrDeviceAssignAddr(virDomainObjPtr vm,
     virDomainDefPtr def = vm->def;
     qemuDomainObjPrivatePtr priv = vm->privateData;
     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,
-                                                         &chr->info, true) < 0)
+        if (virDomainVirtioSerialAddrAutoAssign(def, &chr->info, true) < 0)
             goto cleanup;
         ret = 1;
 
@@ -1789,8 +1784,7 @@ qemuDomainAttachChrDeviceAssignAddr(virDomainObjPtr vm,
 
     } else if (chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL &&
                chr->targetType == VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_VIRTIO) {
-        if (virDomainVirtioSerialAddrAutoAssignFromCache(NULL, vioaddrs,
-                                                         &chr->info, false) < 0)
+        if (virDomainVirtioSerialAddrAutoAssign(def, &chr->info, false) < 0)
             goto cleanup;
         ret = 1;
     }
@@ -1808,7 +1802,6 @@ qemuDomainAttachChrDeviceAssignAddr(virDomainObjPtr vm,
     ret = 0;
 
  cleanup:
-    virDomainVirtioSerialAddrSetFree(vioaddrs);
     return ret;
 }