]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Shorten SCSI hostdev alias to avoid QEMU failure
authorViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
Fri, 12 Jul 2013 15:13:56 +0000 (17:13 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 22 Jul 2013 11:16:29 +0000 (13:16 +0200)
The alias for hostdevs of type SCSI can be too long for QEMU if
larger LUNs are encountered. Here's a real life example:

    <hostdev mode='subsystem' type='scsi' managed='no'>
      <source>
        <adapter name='scsi_host0'/>
        <address bus='0' target='19' unit='1088634913'/>
      </source>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </hostdev>

this results in a too long drive id, resulting in QEMU yelling

Property 'scsi-generic.drive' can't find value 'drive-hostdev-scsi_host0-0-19-1088634913'

This commit changes the alias back to the default hostdev$(index)
scheme.

Signed-off-by: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
src/qemu/qemu_command.c
tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-boot.args
tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-lsi.args
tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-readonly.args
tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-scsi.args

index 8c58a7c7095e55a973d2711fa3977d3845bfa82e..f9f90e6a82beb15877fbd61c73124940d0e88a9f 100644 (file)
@@ -823,16 +823,8 @@ qemuAssignDeviceHostdevAlias(virDomainDefPtr def, virDomainHostdevDefPtr hostdev
         }
     }
 
-    if (hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI) {
-        if (virAsprintf(&hostdev->info->alias, "hostdev-%s-%d-%d-%d",
-                        hostdev->source.subsys.u.scsi.adapter,
-                        hostdev->source.subsys.u.scsi.bus,
-                        hostdev->source.subsys.u.scsi.target,
-                        hostdev->source.subsys.u.scsi.unit) < 0)
-            return -1;
-    } else if (virAsprintf(&hostdev->info->alias, "hostdev%d", idx) < 0) {
+    if (virAsprintf(&hostdev->info->alias, "hostdev%d", idx) < 0)
         return -1;
-    }
 
     return 0;
 }
index 7cb7416d75db505208ecb297c5f93b8ad3fbe45f..5cff24b58d10bbb38d1e71a9e637c50bf28012a6 100644 (file)
@@ -4,7 +4,7 @@ unix:/tmp/test-monitor,server,nowait -no-acpi \
 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x3 -usb \
 -drive file=/dev/HostVG/QEMUGuest2,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--drive file=/dev/sg0,if=none,id=drive-hostdev-scsi_host0-0-0-0 \
+-drive file=/dev/sg0,if=none,id=drive-hostdev0 \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=4,lun=8,\
-drive=drive-hostdev-scsi_host0-0-0-0,id=hostdev-scsi_host0-0-0-0,bootindex=1 \
+drive=drive-hostdev0,id=hostdev0,bootindex=1 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
index b1b631e94071514ef732688747f3cb8641837814..39d5a58f0ce4e85c1f7fbef6fbae566c40f6d991 100644 (file)
@@ -5,7 +5,6 @@ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \
 -device lsi,id=scsi0,bus=pci.0,addr=0x3 -usb \
 -drive file=/dev/HostVG/QEMUGuest2,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--drive file=/dev/sg0,if=none,id=drive-hostdev-scsi_host0-0-0-0 \
--device scsi-generic,bus=scsi0.0,scsi-id=7,\
-drive=drive-hostdev-scsi_host0-0-0-0,id=hostdev-scsi_host0-0-0-0 \
+-drive file=/dev/sg0,if=none,id=drive-hostdev0 \
+-device scsi-generic,bus=scsi0.0,scsi-id=7,drive=drive-hostdev0,id=hostdev0 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
index 42574ac4c974eb255771d93280e7ea22339b7c8a..b2d7ea39fae2b04e70aa35a8957f33b5b9aa41ef 100644 (file)
@@ -4,7 +4,7 @@ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \
 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x3 -usb \
 -drive file=/dev/HostVG/QEMUGuest2,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--drive file=/dev/sg0,if=none,id=drive-hostdev-scsi_host0-0-0-0,readonly=on \
+-drive file=/dev/sg0,if=none,id=drive-hostdev0,readonly=on \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=4,lun=8,\
-drive=drive-hostdev-scsi_host0-0-0-0,id=hostdev-scsi_host0-0-0-0 \
+drive=drive-hostdev0,id=hostdev0 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
index 0039e40d973a0fa18d0c62a092ecdafaf7d39918..26b78bcf88549bf3edb7363a058bd1f39dc2b398 100644 (file)
@@ -4,7 +4,7 @@ unix:/tmp/test-monitor,server,nowait -no-acpi -boot c \
 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x3 -usb \
 -drive file=/dev/HostVG/QEMUGuest2,if=none,id=drive-ide0-0-0 \
 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
--drive file=/dev/sg0,if=none,id=drive-hostdev-scsi_host0-0-0-0 \
+-drive file=/dev/sg0,if=none,id=drive-hostdev0 \
 -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=4,lun=8,\
-drive=drive-hostdev-scsi_host0-0-0-0,id=hostdev-scsi_host0-0-0-0 \
+drive=drive-hostdev0,id=hostdev0 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4