From: Vitor de Lima Date: Wed, 6 Nov 2013 16:13:55 +0000 (-0200) Subject: qemu: Fix SCSI hotplug on pseries guests X-Git-Tag: v1.2.0-rc1~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=efdd591dfba7eda6daaa60f54d31336e142ad097;p=thirdparty%2Flibvirt.git qemu: Fix SCSI hotplug on pseries guests 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. --- diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index e9424d97df..6eb483c415 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,