[dpdk-stable] patch 'net/virtio-user: fix multiqueue with vhost kernel' has been queued to LTS release 18.11.2

Kevin Traynor ktraynor at redhat.com
Tue Apr 16 16:36:48 CEST 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/24/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Kevin Traynor

---
>From cc49e7b184e487c2121a8bdc78c5615010b0fcb5 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie at intel.com>
Date: Tue, 12 Mar 2019 15:13:07 +0800
Subject: [PATCH] net/virtio-user: fix multiqueue with vhost kernel

[ upstream commit bad78b4b8b23412f6007efd034de04b35c663a6f ]

The multiqueue support in virtio-user with vhost kernel backend
is broken when tap name isn't specified by users explicitly,
because the tap name returned by ioctl(TUNSETIFF) isn't saved
properly, and multiple tap interfaces will be created in this
case. Fix this by saving the dynamically allocated tap name
first before reusing the ifr structure. Besides, also make it
possible to support the format string in tap name (e.g. foo%d)
specified by users explicitly.

Fixes: 791b43e08842 ("net/virtio-user: specify MAC of the tap")

Reported-by: Stephen Hemminger <stephen at networkplumber.org>
Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
Reviewed-by: Stephen Hemminger <stephen at networkplumber.org>
---
 drivers/net/virtio/virtio_user/vhost_kernel_tap.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
index a3faf1d0c..fbd9e979d 100644
--- a/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
+++ b/drivers/net/virtio/virtio_user/vhost_kernel_tap.c
@@ -63,4 +63,5 @@ vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
 {
 	unsigned int tap_features;
+	char *tap_name = NULL;
 	int sndbuf = INT_MAX;
 	struct ifreq ifr;
@@ -113,4 +114,10 @@ vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
 	}
 
+	tap_name = strdup(ifr.ifr_name);
+	if (!tap_name) {
+		PMD_DRV_LOG(ERR, "strdup ifname failed: %s", strerror(errno));
+		goto error;
+	}
+
 	fcntl(tapfd, F_SETFL, O_NONBLOCK);
 
@@ -135,9 +142,10 @@ vhost_kernel_open_tap(char **p_ifname, int hdr_size, int req_mq,
 	}
 
-	if (!(*p_ifname))
-		*p_ifname = strdup(ifr.ifr_name);
+	free(*p_ifname);
+	*p_ifname = tap_name;
 
 	return tapfd;
 error:
+	free(tap_name);
 	close(tapfd);
 	return -1;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-04-16 15:34:26.530281599 +0100
+++ 0030-net-virtio-user-fix-multiqueue-with-vhost-kernel.patch	2019-04-16 15:34:25.175180061 +0100
@@ -1,8 +1,10 @@
-From bad78b4b8b23412f6007efd034de04b35c663a6f Mon Sep 17 00:00:00 2001
+From cc49e7b184e487c2121a8bdc78c5615010b0fcb5 Mon Sep 17 00:00:00 2001
 From: Tiwei Bie <tiwei.bie at intel.com>
 Date: Tue, 12 Mar 2019 15:13:07 +0800
 Subject: [PATCH] net/virtio-user: fix multiqueue with vhost kernel
 
+[ upstream commit bad78b4b8b23412f6007efd034de04b35c663a6f ]
+
 The multiqueue support in virtio-user with vhost kernel backend
 is broken when tap name isn't specified by users explicitly,
 because the tap name returned by ioctl(TUNSETIFF) isn't saved
@@ -13,7 +15,6 @@
 specified by users explicitly.
 
 Fixes: 791b43e08842 ("net/virtio-user: specify MAC of the tap")
-Cc: stable at dpdk.org
 
 Reported-by: Stephen Hemminger <stephen at networkplumber.org>
 Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>


More information about the stable mailing list