From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <i.maximets@samsung.com>
Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com
 [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 4F96D5A6A
 for <dev@dpdk.org>; Thu, 24 Jan 2019 17:59:19 +0100 (CET)
Received: from eucas1p2.samsung.com (unknown [182.198.249.207])
 by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id
 20190124165918euoutp02ed95450758bea126610aef557854885c~811s-XoYp1875018750euoutp02a
 for <dev@dpdk.org>; Thu, 24 Jan 2019 16:59:18 +0000 (GMT)
DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com
 20190124165918euoutp02ed95450758bea126610aef557854885c~811s-XoYp1875018750euoutp02a
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;
 s=mail20170921; t=1548349158;
 bh=o9h4CjbGJOEcTcyxFLPrNRX91JeJVjMhSsdDTTVE290=;
 h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
 b=FGR9r0f1SiUD9XKD0kM8yp2g0lbbRowUZ8WVe1FP0TElfPKvf7J7d5F4MeiF1TxVz
 Ia4LUYsm+TVHXlPxLgJHOSwk6ltUD0pHrW4i0YJg675sE4lr3RggC7jxxnJIYsSCDV
 EHAL861XoiGiyjO/KYB970S95Ohrnl/9S3f/Lov8=
Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by
 eucas1p1.samsung.com (KnoxPortal) with ESMTP id
 20190124165918eucas1p12a786aa37ab0d11fab04454a9dde044d~811smdFZe2975429754eucas1p1J;
 Thu, 24 Jan 2019 16:59:18 +0000 (GMT)
Received: from eucas1p1.samsung.com ( [182.198.249.206]) by
 eusmges2new.samsung.com (EUCPMTA) with SMTP id 59.62.04294.6EEE94C5; Thu, 24
 Jan 2019 16:59:18 +0000 (GMT)
Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by
 eucas1p2.samsung.com (KnoxPortal) with ESMTPA id
 20190124165917eucas1p21b83186e336b1099ee32937fa81d8cc7~811rz5NNx0263202632eucas1p2R;
 Thu, 24 Jan 2019 16:59:17 +0000 (GMT)
Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by
 eusmtrp1.samsung.com (KnoxPortal) with ESMTP id
 20190124165917eusmtrp13713104e0752a691b24b21a0ac5d8531~811rlo5hY2842228422eusmtrp1H;
 Thu, 24 Jan 2019 16:59:17 +0000 (GMT)
X-AuditID: cbfec7f4-84fff700000010c6-2a-5c49eee6f48f
Received: from eusmtip2.samsung.com ( [203.254.199.222]) by
 eusmgms2.samsung.com (EUCPMTA) with SMTP id 23.26.04128.5EEE94C5; Thu, 24
 Jan 2019 16:59:17 +0000 (GMT)
Received: from imaximets.rnd.samsung.ru (unknown [106.109.129.180]) by
 eusmtip2.samsung.com (KnoxPortal) with ESMTPA id
 20190124165916eusmtip2b906013c304c975f0719abe7263bd5b9~811qn6P-E1425414254eusmtip2Z;
 Thu, 24 Jan 2019 16:59:16 +0000 (GMT)
From: Ilya Maximets <i.maximets@samsung.com>
To: dev@dpdk.org, Maxime Coquelin <maxime.coquelin@redhat.com>, "Michael S .
 Tsirkin" <mst@redhat.com>
Cc: Tiwei Bie <tiwei.bie@intel.com>, Zhihong Wang <zhihong.wang@intel.com>,
 Jens Freimann <jfreimann@redhat.com>, Ilya Maximets
 <i.maximets@samsung.com>, stable@dpdk.org
Date: Thu, 24 Jan 2019 19:59:01 +0300
Message-Id: <20190124165902.24178-3-i.maximets@samsung.com>
X-Mailer: git-send-email 2.17.1
In-Reply-To: <20190124165902.24178-1-i.maximets@samsung.com>
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDIsWRmVeSWpSXmKPExsWy7djPc7rP3nnGGFz7wmHx7tN2Josr7T/Z
 Lc6tWcpicaxzD4vF/1+vWC3+dfxht9ja8J/JYvPFSUwOHB6/Fixl9Vi85yWTx/t9V9k8+ras
 YgxgieKySUnNySxLLdK3S+DK6P1RW7CMq2L20ZWsDYz7OboYOTkkBEwkXl6/ytTFyMUhJLCC
 UeL1nh4o5wujxKv7V9ghnM+MEg8nvGKEael+9pkNIrGcUeJL/yRGCOcHo8S0AyAZTg42AR2J
 U6uPgHWICGRInLz9HKyIWWAto8TZzidMIAlhgUCJ9stLwIpYBFQlppy/xQJi8wpYS0xunccC
 sU5eYvWGA8wgNqeAjcTni9PYIOKf2SSm3aiEsF0kfsx5AFUvLPHq+BZ2CFtG4vTkHqh4vcT9
 lpdgR0gIdDBKTD/0jwkiYS+x5fU5oAYOoOs0Jdbv0ocIO0p0rvnHChKWEOCTuPFWECTMDGRO
 2jadGSLMK9HRJgRRrSLx++ByZghbSuLmu89QF3hIvLl/jgUSPv3AUNxylnkCo/wshGULGBlX
 MYqnlhbnpqcWG+WllusVJ+YWl+al6yXn525iBKaJ0/+Of9nBuOtP0iFGAQ5GJR7ejkOeMUKs
 iWXFlbmHGCU4mJVEeF0vusUI8aYkVlalFuXHF5XmpBYfYpTmYFES561meBAtJJCeWJKanZpa
 kFoEk2Xi4JRqYExw1z7o6Xjsh5xDTEPtxyyX2DnpuY3vLq+r8aqb+p97/uY935StZU5aqNY7
 9z3fvm2uxUdd9n3tKSETv317wfLuw7xWATvjE7WbLHxSmpfPs/2teqNz99ldOgmbtOYoe2yV
 z0sv22N8hGc1Z+rZXx/+V16Pz7DSPDrznduXHv0+CeOw8lVl75RYijMSDbWYi4oTAfKQjyoP
 AwAA
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDLMWRmVeSWpSXmKPExsVy+t/xe7pP33nGGEy6z2/x7tN2Josr7T/Z
 Lc6tWcpicaxzD4vF/1+vWC3+dfxht9ja8J/JYvPFSUwOHB6/Fixl9Vi85yWTx/t9V9k8+ras
 YgxgidKzKcovLUlVyMgvLrFVija0MNIztLTQMzKx1DM0No+1MjJV0rezSUnNySxLLdK3S9DL
 6P1RW7CMq2L20ZWsDYz7OboYOTkkBEwkup99Zuti5OIQEljKKPF2/j9GiISUxI9fF1ghbGGJ
 P9e6oIq+MUp8m7maCSTBJqAjcWr1EaAGDg4RgSyJd689QGqYBTYySkxfsYQdJC4s4C/x/wbY
 TBYBVYkp52+xgNi8AtYSk1vnsUDMl5dYveEAM4jNKWAj8fniNDYQWwioZtazb8wTGPkWMDKs
 YhRJLS3OTc8tNtIrTswtLs1L10vOz93ECAzZbcd+btnB2PUu+BCjAAejEg9vxyHPGCHWxLLi
 ytxDjBIczEoivK4X3WKEeFMSK6tSi/Lji0pzUosPMZoCHTWRWUo0OR8YT3kl8YamhuYWlobm
 xubGZhZK4rznDSqjhATSE0tSs1NTC1KLYPqYODilGhjTz80p2BT1ZkdPhssW9ffr7N5mzCn/
 OjnRombl/z/P+mNP+7PlVItN/dq5ZcNS1hVzT8sXOrvNaSxhUzh30Gn3orudH25cZf3VLDvh
 8rrj2x/2r131ad72bXmnEiR0K656zarbUybLZMq/LeGG9DmhPyo6x9SLrwsfPyaf92zOK8Hp
 aU6XxA9xK7EUZyQaajEXFScCAEI1hc1vAgAA
X-CMS-MailID: 20190124165917eucas1p21b83186e336b1099ee32937fa81d8cc7
X-Msg-Generator: CA
Content-Type: text/plain; charset="utf-8"
X-RootMTR: 20190124165917eucas1p21b83186e336b1099ee32937fa81d8cc7
X-EPHeader: CA
CMS-TYPE: 201P
X-CMS-RootMailID: 20190124165917eucas1p21b83186e336b1099ee32937fa81d8cc7
References: <20190124165902.24178-1-i.maximets@samsung.com>
 <CGME20190124165917eucas1p21b83186e336b1099ee32937fa81d8cc7@eucas1p2.samsung.com>
Subject: [dpdk-dev] [PATCH 2/3] net/virtio: add barriers for extra
 descriptors on Rx split
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 24 Jan 2019 16:59:19 -0000

There should be read barrier between checking VIRTQUEUE_NUSED (reading
the used->idx) and reading these descriptors. It's done for the first
checks at the beginning of these functions but missed while checking
for extra required descriptors.

Fixes: e5f456a98d3c ("net/virtio: support in-order Rx and Tx")
Fixes: 13ce5e7eb94f ("virtio: mergeable buffers")
Cc: stable@dpdk.org

Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
---
 drivers/net/virtio/virtio_rxtx.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
index 63e4370e4..5ffed6a51 100644
--- a/drivers/net/virtio/virtio_rxtx.c
+++ b/drivers/net/virtio/virtio_rxtx.c
@@ -1456,6 +1456,7 @@ virtio_recv_pkts_inorder(void *rx_queue,
 
 		prev = rcv_pkts[nb_rx];
 		if (likely(VIRTQUEUE_NUSED(vq) >= rcv_cnt)) {
+			virtio_rmb(hw->weak_barriers);
 			num = virtqueue_dequeue_rx_inorder(vq, rcv_pkts, len,
 							   rcv_cnt);
 			uint16_t extra_idx = 0;
@@ -1642,6 +1643,7 @@ virtio_recv_mergeable_pkts(void *rx_queue,
 
 		prev = rcv_pkts[nb_rx];
 		if (likely(VIRTQUEUE_NUSED(vq) >= rcv_cnt)) {
+			virtio_rmb(hw->weak_barriers);
 			num = virtqueue_dequeue_burst_rx(vq, rcv_pkts, len,
 							   rcv_cnt);
 			uint16_t extra_idx = 0;
-- 
2.17.1