From: Jason Wang <jasow...@redhat.com> Obviously, hub does not support multiqueue tap. So this patch forbids creating multiple queue tap when hub is used to prevent the crash when command line such as "-net tap,queues=2" is used.
Cc: qemu-sta...@nongnu.org Signed-off-by: Jason Wang <jasow...@redhat.com> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> (cherry picked from commit ce675a7579fea498397c5d2da3c5367671e9f02a) Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> --- net/tap.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/net/tap.c b/net/tap.c index 48c254e..daab350 100644 --- a/net/tap.c +++ b/net/tap.c @@ -693,6 +693,13 @@ int net_init_tap(const NetClientOptions *opts, const char *name, queues = tap->has_queues ? tap->queues : 1; vhostfdname = tap->has_vhostfd ? tap->vhostfd : NULL; + /* QEMU vlans does not support multiqueue tap, in this case peer is set. + * For -netdev, peer is always NULL. */ + if (peer && (tap->has_queues || tap->has_fds || tap->has_vhostfds)) { + error_report("Multiqueue tap cannnot be used with QEMU vlans"); + return -1; + } + if (tap->has_fd) { if (tap->has_ifname || tap->has_script || tap->has_downscript || tap->has_vnet_hdr || tap->has_helper || tap->has_queues || -- 1.7.9.5