[libvirt PATCH] qemu_hotplug: enter monitor in order to rollback passed FD
From: Pavel Hrdina <phrdina@redhat.com> Reported-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_hotplug.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index bede4e3ccd..93cbaf1d91 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1680,8 +1680,10 @@ qemuDomainAttachHostPCIDevice(virQEMUDriver *driver, qemuDomainObjExitMonitor(vm); } + qemuDomainObjEnterMonitor(vm); qemuFDPassDirectTransferMonitorRollback(hostdevPriv->vfioDeviceFd, priv->mon); qemuFDPassDirectTransferMonitorRollback(priv->iommufd, priv->mon); + qemuDomainObjExitMonitor(vm); if (releaseaddr) qemuDomainReleaseDeviceAddress(vm, info); -- 2.53.0
On Thu, Feb 26, 2026 at 10:59:57 +0100, Pavel Hrdina via Devel wrote:
From: Pavel Hrdina <phrdina@redhat.com>
Reported-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_hotplug.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index bede4e3ccd..93cbaf1d91 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1680,8 +1680,10 @@ qemuDomainAttachHostPCIDevice(virQEMUDriver *driver, qemuDomainObjExitMonitor(vm); }
+ qemuDomainObjEnterMonitor(vm);
Ideally move ^^^ above the 'if (removeiommufd)' clause above and remove the monitor scope from that block.
qemuFDPassDirectTransferMonitorRollback(hostdevPriv->vfioDeviceFd, priv->mon); qemuFDPassDirectTransferMonitorRollback(priv->iommufd, priv->mon); + qemuDomainObjExitMonitor(vm);
With tthe above change: Reviewed-by: Peter Krempa <pkrempa@redhat.com>
On Thu, Feb 26, 2026 at 10:59:57 +0100, Pavel Hrdina wrote:
From: Pavel Hrdina <phrdina@redhat.com>
Reported-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_hotplug.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index bede4e3ccd..93cbaf1d91 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1680,8 +1680,10 @@ qemuDomainAttachHostPCIDevice(virQEMUDriver *driver, qemuDomainObjExitMonitor(vm); }
+ qemuDomainObjEnterMonitor(vm); qemuFDPassDirectTransferMonitorRollback(hostdevPriv->vfioDeviceFd, priv->mon); qemuFDPassDirectTransferMonitorRollback(priv->iommufd, priv->mon); + qemuDomainObjExitMonitor(vm);
if (releaseaddr) qemuDomainReleaseDeviceAddress(vm, info);
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
participants (3)
-
Jiri Denemark -
Pavel Hrdina -
Peter Krempa