mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 14:15:28 +00:00
send default USB controller in xml to destination during migration
The default USB controller is not sent to destination as the older versions
of libvirt(0.9.4 or earlier as I see in commit log of 409b5f54
) didn't
support them. For some archs where the support started much later can
safely send the USB controllers without this worry. So, send the controller
to destination for all archs except x86. Moreover this is not very applicable
to x86 as the USB controller has model ich9_ehci1 on q35 and for pc-i440fx,
there cant be any slots before USB as it is fixed on slot 1.
The patch fixes a bug that, if the USB controller happens to occupy
a slot after disks/interfaces and one of them is hot-unplugged, then
the default USB controller added on destination takes the smallest slot
number and that would lead to savestate mismatch and migration
failure. Seen and verified on PPC64.
Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com>
This commit is contained in:
parent
601531d6ea
commit
192a53e07c
@ -2887,7 +2887,11 @@ qemuDomainDefFormatBuf(virQEMUDriverPtr driver,
|
||||
usb = def->controllers[i];
|
||||
}
|
||||
}
|
||||
if (usb && usb->idx == 0 && usb->model == -1) {
|
||||
/* The original purpose of the check was the migration compatibility
|
||||
* with libvirt <= 0.9.4. Limitation doesn't apply to other archs
|
||||
* and can cause problems on PPC64.
|
||||
*/
|
||||
if (ARCH_IS_X86(def->os.arch) && usb && usb->idx == 0 && usb->model == -1) {
|
||||
VIR_DEBUG("Removing default USB controller from domain '%s'"
|
||||
" for migration compatibility", def->name);
|
||||
toremove++;
|
||||
|
Loading…
Reference in New Issue
Block a user