[dpdk-stable] patch 'net/af_packet: fix setting MTU decrements sockaddr twice' has been queued to LTS release 18.11.1

Kevin Traynor ktraynor at redhat.com
Fri Jan 4 14:24:49 CET 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 01/11/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 b64072ad7772b0de8017bca111dfe23bdb23dd65 Mon Sep 17 00:00:00 2001
From: Tiago Lam <tiago.lam at intel.com>
Date: Tue, 20 Nov 2018 10:26:29 +0000
Subject: [PATCH] net/af_packet: fix setting MTU decrements sockaddr twice

[ upstream commit 8020573894a8504da3146af1854c8aca762539fd ]

When setting the MTU, eth_dev_mtu_set() is called to validate the
provided MTU. As part of that, it calculates the useful area to store
data and compares it against the MTU, to guarantee that there's enough
space to store the data. It calculates that as:
    "tp_frame_size - TPACKET2_HDRLEN - sizeof(struct sockaddr_ll)"

However, the TPACKET2_HDRLEN macro already increments sizeof(struct
sockaddr_ll) internally, meaning the useuful area of data above will
have sizeof(struct sockaddr_ll) decremented twice.

Instead, the useful area of data should be calculated as:
    "tp_frame_size - TPACKET2_HDRLEN"

This makes sure that there's enough useful area to fit the provided MTU
after excluding tpacket2_hdr and sockaddr_ll.

Fixes: cc68ac4847bc ("net/af_packet: support MTU change")

Signed-off-by: Tiago Lam <tiago.lam at intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
 drivers/net/af_packet/rte_eth_af_packet.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index 95a98c6b8..264cfc08f 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -434,6 +434,5 @@ eth_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
 	int s;
 	unsigned int data_size = internals->req.tp_frame_size -
-				 TPACKET2_HDRLEN -
-				 sizeof(struct sockaddr_ll);
+				 TPACKET2_HDRLEN;
 
 	if (mtu > data_size)
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-01-04 13:23:09.077430016 +0000
+++ 0067-net-af_packet-fix-setting-MTU-decrements-sockaddr-tw.patch	2019-01-04 13:23:07.000000000 +0000
@@ -1,8 +1,10 @@
-From 8020573894a8504da3146af1854c8aca762539fd Mon Sep 17 00:00:00 2001
+From b64072ad7772b0de8017bca111dfe23bdb23dd65 Mon Sep 17 00:00:00 2001
 From: Tiago Lam <tiago.lam at intel.com>
 Date: Tue, 20 Nov 2018 10:26:29 +0000
 Subject: [PATCH] net/af_packet: fix setting MTU decrements sockaddr twice
 
+[ upstream commit 8020573894a8504da3146af1854c8aca762539fd ]
+
 When setting the MTU, eth_dev_mtu_set() is called to validate the
 provided MTU. As part of that, it calculates the useful area to store
 data and compares it against the MTU, to guarantee that there's enough
@@ -20,7 +22,6 @@
 after excluding tpacket2_hdr and sockaddr_ll.
 
 Fixes: cc68ac4847bc ("net/af_packet: support MTU change")
-Cc: stable at dpdk.org
 
 Signed-off-by: Tiago Lam <tiago.lam at intel.com>
 Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>


More information about the stable mailing list