Commit f536445229 for qemu.org
commit f5364452296b55472476a3ef07fd412dda48c8dd
Author: Rohitashv Kumar <roohiit@amazon.de>
Date: Tue Jul 28 14:43:03 2026 +0000
qapi/net: gate user/vde/netmap netdev backends behind their CONFIG symbols
Their NetClientDriver enum members and Netdev union branches were
unconditional, so query-qmp-schema advertised them even when built without
CONFIG_SLIRP/CONFIG_VDE/CONFIG_NETMAP. Gate them, and guard the matching
NET_CLIENT_DRIVER_USER/_VDE case labels in net/hub.c.
Signed-off-by: Rohitashv Kumar <roohiit@amazon.de>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
diff --git a/net/hub.c b/net/hub.c
index b53a4cc872..1d1710a198 100644
--- a/net/hub.c
+++ b/net/hub.c
@@ -299,12 +299,16 @@ void net_hub_check_clients(void)
#ifdef CONFIG_PASST
case NET_CLIENT_DRIVER_PASST:
#endif
+#ifdef CONFIG_SLIRP
case NET_CLIENT_DRIVER_USER:
+#endif
case NET_CLIENT_DRIVER_TAP:
case NET_CLIENT_DRIVER_SOCKET:
case NET_CLIENT_DRIVER_STREAM:
case NET_CLIENT_DRIVER_DGRAM:
+#ifdef CONFIG_VDE
case NET_CLIENT_DRIVER_VDE:
+#endif
case NET_CLIENT_DRIVER_VHOST_USER:
has_host_dev = 1;
break;
diff --git a/qapi/net.json b/qapi/net.json
index 85c78710fe..bb626005a8 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -922,9 +922,13 @@
# Since: 2.7
##
{ 'enum': 'NetClientDriver',
- 'data': [ 'none', 'nic', 'user', 'tap', 'l2tpv3', 'socket', 'stream',
- 'dgram', 'vde', 'bridge', 'hubport', 'netmap', 'vhost-user',
- 'vhost-vdpa',
+ 'data': [ 'none', 'nic',
+ { 'name': 'user', 'if': 'CONFIG_SLIRP' },
+ 'tap', 'l2tpv3', 'socket', 'stream', 'dgram',
+ { 'name': 'vde', 'if': 'CONFIG_VDE' },
+ 'bridge', 'hubport',
+ { 'name': 'netmap', 'if': 'CONFIG_NETMAP' },
+ 'vhost-user', 'vhost-vdpa',
{ 'name': 'passt', 'if': 'CONFIG_PASST' },
{ 'name': 'af-xdp', 'if': 'CONFIG_AF_XDP' },
{ 'name': 'vmnet-host', 'if': 'CONFIG_VMNET' },
@@ -949,16 +953,19 @@
'nic': 'NetLegacyNicOptions',
'passt': { 'type': 'NetdevPasstOptions',
'if': 'CONFIG_PASST' },
- 'user': 'NetdevUserOptions',
+ 'user': { 'type': 'NetdevUserOptions',
+ 'if': 'CONFIG_SLIRP' },
'tap': 'NetdevTapOptions',
'l2tpv3': 'NetdevL2TPv3Options',
'socket': 'NetdevSocketOptions',
'stream': 'NetdevStreamOptions',
'dgram': 'NetdevDgramOptions',
- 'vde': 'NetdevVdeOptions',
+ 'vde': { 'type': 'NetdevVdeOptions',
+ 'if': 'CONFIG_VDE' },
'bridge': 'NetdevBridgeOptions',
'hubport': 'NetdevHubPortOptions',
- 'netmap': 'NetdevNetmapOptions',
+ 'netmap': { 'type': 'NetdevNetmapOptions',
+ 'if': 'CONFIG_NETMAP' },
'af-xdp': { 'type': 'NetdevAFXDPOptions',
'if': 'CONFIG_AF_XDP' },
'vhost-user': 'NetdevVhostUserOptions',