mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 09:47:20 +03:00
domain-conf: reorder usb controllers so the master is first
USB controllers can share the same 'index' which indicates, that there is some sort of master-companion relationship. Reorder the controllers in XML in to place the master controller before its companions. This is required by QEMU to not fail with error message: error: internal error: process exited while connecting to monitor: 2015-10-26T16:25:17.630265Z qemu-system-x86_64: -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6: USB bus 'usb.0' not found Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1166452 Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
6fdbdafcd7
commit
fc03eb53c0
@ -13412,6 +13412,14 @@ void virDomainControllerInsertPreAlloced(virDomainDefPtr def,
|
||||
* new controller, then new controller should go here
|
||||
* */
|
||||
insertAt = idx;
|
||||
} else if (controller->info.mastertype == VIR_DOMAIN_CONTROLLER_MASTER_NONE &&
|
||||
current->info.mastertype != VIR_DOMAIN_CONTROLLER_MASTER_NONE &&
|
||||
current->idx == controller->idx) {
|
||||
/* If bus matches and index matches and new controller is
|
||||
* master and current isn't a master, then new controller
|
||||
* should go here to be placed before its companion
|
||||
*/
|
||||
insertAt = idx;
|
||||
} else if (insertAt == -1) {
|
||||
/* Last controller with match bus is before the
|
||||
* new controller, then put new controller just after
|
||||
|
31
tests/qemuxml2argvdata/qemuxml2argv-controller-usb-order.xml
Normal file
31
tests/qemuxml2argvdata/qemuxml2argv-controller-usb-order.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<domain type='kvm'>
|
||||
<name>rhel7</name>
|
||||
<uuid>c9b867fb-7274-4a22-8884-0867d05b38cf</uuid>
|
||||
<memory unit='KiB'>2097152</memory>
|
||||
<currentMemory unit='KiB'>2097152</currentMemory>
|
||||
<vcpu placement='static'>2</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<pm>
|
||||
<suspend-to-mem enabled='no'/>
|
||||
<suspend-to-disk enabled='no'/>
|
||||
</pm>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
||||
<controller type='usb' index='0' model='ich9-uhci1'>
|
||||
<master startport='0'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-ehci1'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x7' multifunction='on'/>
|
||||
</controller>
|
||||
<controller type='usb' index='1' model='nec-xhci'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
|
||||
</controller>
|
||||
</devices>
|
||||
</domain>
|
@ -0,0 +1,34 @@
|
||||
<domain type='kvm'>
|
||||
<name>rhel7</name>
|
||||
<uuid>c9b867fb-7274-4a22-8884-0867d05b38cf</uuid>
|
||||
<memory unit='KiB'>2097152</memory>
|
||||
<currentMemory unit='KiB'>2097152</currentMemory>
|
||||
<vcpu placement='static'>2</vcpu>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<pm>
|
||||
<suspend-to-mem enabled='no'/>
|
||||
<suspend-to-disk enabled='no'/>
|
||||
</pm>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
||||
<controller type='usb' index='0' model='ich9-ehci1'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x7' multifunction='on'/>
|
||||
</controller>
|
||||
<controller type='usb' index='0' model='ich9-uhci1'>
|
||||
<master startport='0'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/>
|
||||
</controller>
|
||||
<controller type='usb' index='1' model='nec-xhci'>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
|
||||
</controller>
|
||||
<controller type='pci' index='0' model='pci-root'/>
|
||||
<memballoon model='virtio'/>
|
||||
</devices>
|
||||
</domain>
|
@ -507,6 +507,7 @@ mymain(void)
|
||||
DO_TEST_DIFFERENT("usb-redir-filter");
|
||||
DO_TEST_DIFFERENT("usb-redir-filter-version");
|
||||
DO_TEST("blkdeviotune");
|
||||
DO_TEST_DIFFERENT("controller-usb-order");
|
||||
|
||||
DO_TEST_FULL("seclabel-dynamic-baselabel", false, WHEN_INACTIVE);
|
||||
DO_TEST_FULL("seclabel-dynamic-override", false, WHEN_INACTIVE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user