From: Jason Wang Date: Thu, 21 Feb 2013 03:05:56 +0000 (+0800) Subject: tap: forbid creating multiqueue tap when hub is used X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ce675a7579fea498397c5d2da3c5367671e9f02a;p=qmiga%2Fqemu.git tap: forbid creating multiqueue tap when hub is used 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-stable@nongnu.org Signed-off-by: Jason Wang Signed-off-by: Stefan Hajnoczi --- diff --git a/net/tap.c b/net/tap.c index 48c254ed85..daab350efc 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 ||