[libvirt] [PATCH 2/2] qemu: Fix SCSI hotplug on pseries guests

Vitor de Lima vitordelima at gmail.com
Wed Nov 6 16:13:55 UTC 2013


From: Vitor de Lima <vitor.lima at eldorado.org.br>

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 not supported.

This fixes issues with the hotplug of SCSI disks on pseries guests.
---
 src/qemu/qemu_hotplug.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index e9424d9..6eb483c 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -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,
-- 
1.8.1.4




More information about the libvir-list mailing list