c401cc
From 93b4590ec1403a870bdc96f6bf8f032932860e86 Mon Sep 17 00:00:00 2001
c401cc
Message-Id: <93b4590ec1403a870bdc96f6bf8f032932860e86.1385135432.git.jdenemar@redhat.com>
c401cc
From: Eric Farman <farman@linux.vnet.ibm.com>
c401cc
Date: Fri, 15 Nov 2013 15:44:19 +0100
c401cc
Subject: [PATCH] qemu: Allow hotplug of multiple SCSI devices
c401cc
c401cc
https://bugzilla.redhat.com/show_bug.cgi?id=1031062
c401cc
c401cc
Hotplugging a single SCSI device works, but adding additional ones
c401cc
result in an error from QEMU:
c401cc
c401cc
[root@gpok197 ~]# virsh attach-device guest01 blah.xml
c401cc
Device attached successfully
c401cc
[root@gpok197 ~]# virsh attach-device guest01 blah2.xml
c401cc
error: Failed to attach device from blah2.xml
c401cc
error: internal error unable to execute QEMU command 'device_add': Duplicate ID 'hostdev0' for device
c401cc
c401cc
The hostdev ID that is created is always set to zero, regardless
c401cc
of the contents of the XML.  Changing the index in the hotplug case
c401cc
to a negative one so the next available index is used.
c401cc
c401cc
Signed-off-by: Eric Farman <farman@linux.vnet.ibm.com>
c401cc
Reviewed-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
c401cc
(cherry picked from commit c4eb12067e020b0b30c34b0f8d67943da654761d)
c401cc
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
c401cc
---
c401cc
 src/qemu/qemu_hotplug.c | 2 +-
c401cc
 1 file changed, 1 insertion(+), 1 deletion(-)
c401cc
c401cc
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
c401cc
index f87b893..4b9cc07 100644
c401cc
--- a/src/qemu/qemu_hotplug.c
c401cc
+++ b/src/qemu/qemu_hotplug.c
c401cc
@@ -1375,7 +1375,7 @@ qemuDomainAttachHostScsiDevice(virQEMUDriverPtr driver,
c401cc
         return -1;
c401cc
     }
c401cc
 
c401cc
-    if (qemuAssignDeviceHostdevAlias(vm->def, hostdev, 0) < 0)
c401cc
+    if (qemuAssignDeviceHostdevAlias(vm->def, hostdev, -1) < 0)
c401cc
         goto cleanup;
c401cc
 
c401cc
     if (!(drvstr = qemuBuildSCSIHostdevDrvStr(hostdev, priv->qemuCaps,
c401cc
-- 
c401cc
1.8.4.4
c401cc