]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Fix USB/PCI device address aliases in QEMU hotplug driver
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 1 Mar 2010 21:06:01 +0000 (21:06 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 3 Mar 2010 14:56:15 +0000 (14:56 +0000)
The USB/PCI device hotplug code for the QEMU driver was forgetting
to allocate a unique device alias.

* src/qemu/qemu_driver.c: Fill in device alias for USB/PCI devices

src/qemu/qemu_driver.c

index 7f7c459707cb2ba355561180fe1180c886ce62c3..0bc723d66640d46ee36bb6a1e66773a1b27e2edc 100644 (file)
@@ -6017,6 +6017,8 @@ static int qemudDomainAttachHostPciDevice(struct qemud_driver *driver,
     }
 
     if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) {
+        if (qemuAssignDeviceHostdevAlias(vm->def, hostdev, -1) < 0)
+            goto error;
         if (qemuDomainPCIAddressEnsureAddr(priv->pciaddrs, &hostdev->info) < 0)
             goto error;
 
@@ -6065,9 +6067,12 @@ static int qemudDomainAttachHostUsbDevice(struct qemud_driver *driver,
     qemuDomainObjPrivatePtr priv = vm->privateData;
     char *devstr = NULL;
 
-    if ((qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) &&
-        !(devstr = qemuBuildUSBHostdevDevStr(hostdev)))
-        goto error;
+    if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) {
+        if (qemuAssignDeviceHostdevAlias(vm->def, hostdev, -1) < 0)
+            goto error;
+        if (!(devstr = qemuBuildUSBHostdevDevStr(hostdev)))
+            goto error;
+    }
 
     if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0) {
         virReportOOMError();