Commit fec61d48d1 for qemu.org
commit fec61d48d1a4552710259be30c90c8bd4f46e8c3
Author: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Date: Thu Oct 30 19:40:18 2025 +0300
net/tap: net_init_tap_one(): move parameter checking earlier
Let's keep all similar argument checking in net_init_tap() function.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Maksim Davydov <davydov-max@yandex-team.ru>
Signed-off-by: Jason Wang <jasowang@redhat.com>
diff --git a/net/tap.c b/net/tap.c
index c162523a03..abeee6be11 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -767,9 +767,6 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
"vhost-net requested but could not be initialized");
goto failed;
}
- } else if (vhostfdname) {
- error_setg(errp, "vhostfd(s)= is not valid without vhost");
- goto failed;
}
return;
@@ -831,6 +828,11 @@ int net_init_tap(const Netdev *netdev, const char *name,
return -1;
}
+ if (tap->has_vhost && !tap->vhost && (tap->vhostfds || tap->vhostfd)) {
+ error_setg(errp, "vhostfd(s)= is not valid without vhost");
+ return -1;
+ }
+
if (tap->fd) {
if (tap->ifname || tap->script || tap->downscript ||
tap->has_vnet_hdr || tap->helper || tap->has_queues ||