]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: do not drop implicit controllers with non-implicit attributes
authorJán Tomko <jtomko@redhat.com>
Sun, 25 Mar 2018 18:54:07 +0000 (20:54 +0200)
committerJán Tomko <jtomko@redhat.com>
Mon, 26 Mar 2018 13:13:26 +0000 (15:13 +0200)
If someone set a user alias or pcihole64 on an implicit controller,
we need to format it to migrate the domain properly.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reported-by: Joseph Richard <Joseph.Richard@windriver.com>
src/qemu/qemu_domain.c

index 4aaf617dae5b4c9f9d1656ff29883979ba615c70..580e0f830d483fc88b91f3b458306da0aa67e415 100644 (file)
@@ -6181,7 +6181,8 @@ qemuDomainDefFormatBufInternal(virQEMUDriverPtr driver,
         if (ARCH_IS_X86(def->os.arch) && qemuDomainIsI440FX(def) &&
             usb && usb->idx == 0 &&
             (usb->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_DEFAULT ||
-             usb->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_PIIX3_UHCI)) {
+             usb->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_PIIX3_UHCI) &&
+            !virDomainDeviceAliasIsUserAlias(usb->info.alias)) {
             VIR_DEBUG("Removing default USB controller from domain '%s'"
                       " for migration compatibility", def->name);
             toremove++;
@@ -6202,7 +6203,9 @@ qemuDomainDefFormatBufInternal(virQEMUDriverPtr driver,
         }
 
         if (pci && pci->idx == 0 &&
-            pci->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT) {
+            pci->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT &&
+            !virDomainDeviceAliasIsUserAlias(pci->info.alias) &&
+            !pci->opts.pciopts.pcihole64) {
             VIR_DEBUG("Removing default pci-root from domain '%s'"
                       " for migration compatibility", def->name);
             toremove++;