On failure to plug the device the cleanup path didn't roll back the FD passing to qemu thus qemu would hold the FDs indefinitely. Resolves: https://issues.redhat.com/browse/RHEL-53964 Fixes: b79abf9c3cdab8bcecfa8769629a4cdf4bf0b6c3 (vdpafd) Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- src/qemu/qemu_hotplug.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 7cb1800504..75b97cf736 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1456,6 +1456,9 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, VIR_WARN("Failed to remove network backend for netdev %s", netdev_name); + qemuFDPassTransferMonitorRollback(netpriv->vdpafd, priv->mon); + qemuFDPassDirectTransferMonitorRollback(netpriv->slirpfd, priv->mon); + for (n = netpriv->tapfds; n; n = n->next) qemuFDPassDirectTransferMonitorRollback(n->data, priv->mon); -- 2.46.0