]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: remove pointless address validation on hot unplug
authorJán Tomko <jtomko@redhat.com>
Wed, 18 Oct 2017 13:39:33 +0000 (15:39 +0200)
committerJán Tomko <jtomko@redhat.com>
Thu, 19 Oct 2017 12:45:15 +0000 (14:45 +0200)
Back in the times of using 'pci_del', unplugging a device without
a PCI address was not wired up.

After completely removing support for qemu without QEMU_CAPS_DEVICE,
aliases are used to uniquely identify devices in all cases.

Remove the pointless validation of data that was already present
in the domain definition.

src/qemu/qemu_hotplug.c

index be5fa8648455682f791483104564589b978e9166..57240ce67759091d7cddba902a4d202381e2ae3d 100644 (file)
@@ -4634,23 +4634,6 @@ qemuDomainDetachVirtioDiskDevice(virQEMUDriverPtr driver,
         goto cleanup;
     }
 
-    if (qemuDomainIsS390CCW(vm->def) &&
-        virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_VIRTIO_CCW)) {
-        if (!virDomainDeviceAddressIsValid(&detach->info,
-                                           VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW)) {
-            virReportError(VIR_ERR_OPERATION_FAILED, "%s",
-                           _("device cannot be detached without a valid CCW address"));
-            goto cleanup;
-        }
-    } else {
-        if (!virDomainDeviceAddressIsValid(&detach->info,
-                                           VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)) {
-            virReportError(VIR_ERR_OPERATION_FAILED, "%s",
-                           _("device cannot be detached without a valid PCI address"));
-            goto cleanup;
-        }
-    }
-
     if (!detach->info.alias) {
         if (qemuAssignDeviceDiskAlias(vm->def, detach, priv->qemuCaps) < 0)
             goto cleanup;
@@ -4908,13 +4891,6 @@ qemuDomainDetachHostPCIDevice(virQEMUDriverPtr driver,
         return -1;
     }
 
-    if (!virDomainDeviceAddressIsValid(detach->info,
-                                       VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)) {
-        virReportError(VIR_ERR_OPERATION_FAILED,
-                       "%s", _("device cannot be detached without a PCI address"));
-        return -1;
-    }
-
     qemuDomainMarkDeviceForRemoval(vm, detach->info);
 
     qemuDomainObjEnterMonitor(driver, vm);
@@ -5240,28 +5216,12 @@ qemuDomainDetachNetDevice(virQEMUDriverPtr driver,
                                              virDomainNetGetActualHostdev(detach));
         goto cleanup;
     }
-    if (qemuDomainIsS390CCW(vm->def) &&
-        virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_VIRTIO_CCW)) {
-        if (!virDomainDeviceAddressIsValid(&detach->info,
-                                           VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW)) {
-            virReportError(VIR_ERR_OPERATION_FAILED,
-                            "%s", _("device cannot be detached without a CCW address"));
-            goto cleanup;
-        }
-    } else {
-        if (!virDomainDeviceAddressIsValid(&detach->info,
-                                           VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)) {
-            virReportError(VIR_ERR_OPERATION_FAILED,
-                            "%s", _("device cannot be detached without a PCI address"));
-            goto cleanup;
-        }
 
-        if (qemuIsMultiFunctionDevice(vm->def, &detach->info)) {
-            virReportError(VIR_ERR_OPERATION_FAILED,
-                            _("cannot hot unplug multifunction PCI device :%s"),
-                            dev->data.disk->dst);
-            goto cleanup;
-        }
+    if (qemuIsMultiFunctionDevice(vm->def, &detach->info)) {
+        virReportError(VIR_ERR_OPERATION_FAILED,
+                       _("cannot hot unplug multifunction PCI device :%s"),
+                       dev->data.disk->dst);
+        goto cleanup;
     }
 
     if (!detach->info.alias) {