]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Fix SCSI hotplug on pseries guests
authorVitor de Lima <vitor.lima@eldorado.org.br>
Wed, 6 Nov 2013 16:13:55 +0000 (14:13 -0200)
committerLaine Stump <laine@laine.org>
Fri, 8 Nov 2013 14:25:02 +0000 (16:25 +0200)
This patch moves some code in the qemuDomainAttachSCSIDisk
function. The check for the existence of a PCI address assigned
to the SCSI controller was moved in order to be executed only
when needed. The PCI address of a controller is not necessary
if QEMU_CAPS_DEVICE is supported.

This fixes issues with the hotplug of SCSI disks on pseries guests.

src/qemu/qemu_hotplug.c

index e9424d97df8a3301b54ad59bcdfaeba1d76e2e00..6eb483c4151d4f4da314b0377d605d1ab85db563 100644 (file)
@@ -518,12 +518,6 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn,
        and hence the above loop must iterate at least once.  */
     sa_assert(cont);
 
-    if (cont->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("SCSI controller %d was missing its PCI address"), cont->idx);
-        goto error;
-    }
-
     if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0)
         goto error;
 
@@ -540,6 +534,13 @@ qemuDomainAttachSCSIDisk(virConnectPtr conn,
             }
         }
     } else {
+        if (cont->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) {
+            virReportError(VIR_ERR_INTERNAL_ERROR,
+                           _("SCSI controller %d was missing its PCI address"),
+                           cont->idx);
+            goto error;
+        }
+
         virDomainDeviceDriveAddress driveAddr;
         ret = qemuMonitorAttachDrive(priv->mon,
                                      drivestr,