From 3e9cc6e78e40a1f7c17fa3bc96b04389b5f25f1c Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 9 May 2022 16:39:48 +0200 Subject: [PATCH] qemuDomainAttachNetDevice: Don't construct network device properties under monitor lock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After the 'qemuFDPass' code was refactored we no longer need to hand off the FD to qemu before we know the path for it. Thus the call to qemuBuildHostNetProps can be moved outside of the monitor critical section. Signed-off-by: Peter Krempa Reviewed-by: Jonathon Jongsma Reviewed-by: Ján Tomko --- src/qemu/qemu_hotplug.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index d5bdeb83ae..525c55baf2 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1452,17 +1452,15 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, for (i = 0; i < vhostfdSize; i++) vhostfdName[i] = g_strdup_printf("vhostfd-%s%zu", net->info.alias, i); - qemuDomainObjEnterMonitor(driver, vm); - - if (qemuFDPassTransferMonitor(netpriv->vdpafd, priv->mon) < 0) { - qemuDomainObjExitMonitor(vm); - goto cleanup; - } - if (!(netprops = qemuBuildHostNetProps(net, tapfdName, tapfdSize, vhostfdName, vhostfdSize, - slirpfdName))) { + slirpfdName))) + goto cleanup; + + qemuDomainObjEnterMonitor(driver, vm); + + if (qemuFDPassTransferMonitor(netpriv->vdpafd, priv->mon) < 0) { qemuDomainObjExitMonitor(vm); goto cleanup; }