From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 4785EA00E6 for ; Tue, 16 Apr 2019 16:38:27 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3761E1B4E1; Tue, 16 Apr 2019 16:38:27 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 9AF391B4F1 for ; Tue, 16 Apr 2019 16:38:25 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 05936307EA8F; Tue, 16 Apr 2019 14:38:25 +0000 (UTC) Received: from rh.redhat.com (ovpn-117-214.ams2.redhat.com [10.36.117.214]) by smtp.corp.redhat.com (Postfix) with ESMTP id 946AA10021B1; Tue, 16 Apr 2019 14:38:22 +0000 (UTC) From: Kevin Traynor To: Tiwei Bie Cc: Stephen Hemminger , Maxime Coquelin , dpdk stable Date: Tue, 16 Apr 2019 15:36:48 +0100 Message-Id: <20190416143719.21601-30-ktraynor@redhat.com> In-Reply-To: <20190416143719.21601-1-ktraynor@redhat.com> References: <20190416143719.21601-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Tue, 16 Apr 2019 14:38:25 +0000 (UTC) Subject: [dpdk-stable] patch 'net/virtio-user: fix multiqueue with vhost kernel' has been queued to LTS release 18.11.2 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" 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 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 Signed-off-by: Tiwei Bie Reviewed-by: Maxime Coquelin Reviewed-by: Stephen Hemminger --- 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 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@dpdk.org Reported-by: Stephen Hemminger Signed-off-by: Tiwei Bie