From: Peter Krempa <pkrempa@redhat.com> QEMU is going to deprecate the singular spelling for single FDs soon with the guidance to use the plural. Since we can't/are unsure about using that with older QEMUs do the change based on the capability. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_command.c | 11 +++++++---- src/qemu/qemu_command.h | 3 ++- src/qemu/qemu_hotplug.c | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index ca6779a6ea..e6ce9492a3 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3925,7 +3925,8 @@ qemuBuildHostNetSocketAddr(virDomainNetDef *net) virJSONValue * qemuBuildHostNetProps(virDomainObj *vm, - virDomainNetDef *net) + virDomainNetDef *net, + virQEMUCaps *qemuCaps) { virDomainNetType netType = virDomainNetGetActualType(net); size_t i; @@ -3967,7 +3968,8 @@ qemuBuildHostNetProps(virDomainObj *vm, nfds++; } - if (nfds > 1) + if (nfds > 1 || + virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_TAP_FD_VHOSTFD_PLURAL)) tapfd_field = "s:fds"; } @@ -3983,7 +3985,8 @@ qemuBuildHostNetProps(virDomainObj *vm, nfds++; } - if (nfds > 1) + if (nfds > 1 || + virQEMUCapsGet(qemuCaps, QEMU_CAPS_NETDEV_TAP_FD_VHOSTFD_PLURAL)) vhostfd_field = "s:vhostfds"; } @@ -9147,7 +9150,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, qemuFDPassDirectTransferCommand(netpriv->slirpfd, cmd); qemuFDPassTransferCommand(netpriv->vdpafd, cmd); - if (!(hostnetprops = qemuBuildHostNetProps(vm, net))) + if (!(hostnetprops = qemuBuildHostNetProps(vm, net, qemuCaps))) goto cleanup; if (qemuBuildNetdevCommandlineFromJSON(cmd, hostnetprops, qemuCaps) < 0) diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index ad068f1f16..12e70bf180 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -87,7 +87,8 @@ qemuBuildChannelGuestfwdNetdevProps(virDomainChrDef *chr); virJSONValue * qemuBuildHostNetProps(virDomainObj *vm, - virDomainNetDef *net); + virDomainNetDef *net, + virQEMUCaps *qemuCaps); int qemuBuildInterfaceConnect(virDomainObj *vm, diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index f786248e70..2ed7a3b163 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1388,7 +1388,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, virNetDevSetMTU(net->ifname, net->mtu) < 0) goto cleanup; - if (!(netprops = qemuBuildHostNetProps(vm, net))) + if (!(netprops = qemuBuildHostNetProps(vm, net, priv->qemuCaps))) goto cleanup; qemuDomainObjEnterMonitor(vm); -- 2.53.0