[dpdk-stable] patch 'net/af_packet: fix stale sockets' has been queued to LTS release 17.11.10

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Dec 19 15:32:32 CET 2019


Hi,

FYI, your patch has been queued to LTS release 17.11.10

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/21/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.

Luca Boccassi

---
>From e07be862135bb569c11b1f9d6ef8a628ce1ae158 Mon Sep 17 00:00:00 2001
From: Abhishek Sachan <abhishek.sachan at altran.com>
Date: Thu, 22 Aug 2019 11:55:36 +0530
Subject: [PATCH] net/af_packet: fix stale sockets

[ upstream commit 7c3bcc7b6dc14623bd17960fa3236e6fa9e2711b ]

af_packet driver is leaving stale socket after device is removed.

Ring buffers are memory mapped when device is added using rte_dev_probe.
There is no corresponding munmap call when device is removed/closed.

This commit fixes the issue by calling munmap
from rte_pmd_af_packet_remove().

Bugzilla ID: 339
Fixes: e6ee4db01b4d ("af_packet: make the device detachable")

Signed-off-by: Abhishek Sachan <abhishek.sachan at altran.com>
Reviewed-by: John W. Linville <linville at tuxdriver.com>
---
 drivers/net/af_packet/rte_eth_af_packet.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
index 5cb348f675..4735280902 100644
--- a/drivers/net/af_packet/rte_eth_af_packet.c
+++ b/drivers/net/af_packet/rte_eth_af_packet.c
@@ -982,6 +982,7 @@ rte_pmd_af_packet_remove(struct rte_vdev_device *dev)
 {
 	struct rte_eth_dev *eth_dev = NULL;
 	struct pmd_internals *internals;
+	struct tpacket_req *req;
 	unsigned q;
 
 	RTE_LOG(INFO, PMD, "Closing AF_PACKET ethdev on numa socket %u\n",
@@ -996,7 +997,10 @@ rte_pmd_af_packet_remove(struct rte_vdev_device *dev)
 		return -1;
 
 	internals = eth_dev->data->dev_private;
+	req = &internals->req;
 	for (q = 0; q < internals->nb_queues; q++) {
+		munmap(internals->rx_queue[q].map,
+			2 * req->tp_block_size * req->tp_block_nr);
 		rte_free(internals->rx_queue[q].rd);
 		rte_free(internals->tx_queue[q].rd);
 	}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-19 14:32:26.547087975 +0000
+++ 0005-net-af_packet-fix-stale-sockets.patch	2019-12-19 14:32:25.397283786 +0000
@@ -1,8 +1,10 @@
-From 7c3bcc7b6dc14623bd17960fa3236e6fa9e2711b Mon Sep 17 00:00:00 2001
+From e07be862135bb569c11b1f9d6ef8a628ce1ae158 Mon Sep 17 00:00:00 2001
 From: Abhishek Sachan <abhishek.sachan at altran.com>
 Date: Thu, 22 Aug 2019 11:55:36 +0530
 Subject: [PATCH] net/af_packet: fix stale sockets
 
+[ upstream commit 7c3bcc7b6dc14623bd17960fa3236e6fa9e2711b ]
+
 af_packet driver is leaving stale socket after device is removed.
 
 Ring buffers are memory mapped when device is added using rte_dev_probe.
@@ -13,7 +15,6 @@
 
 Bugzilla ID: 339
 Fixes: e6ee4db01b4d ("af_packet: make the device detachable")
-Cc: stable at dpdk.org
 
 Signed-off-by: Abhishek Sachan <abhishek.sachan at altran.com>
 Reviewed-by: John W. Linville <linville at tuxdriver.com>
@@ -22,19 +23,19 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c
-index 82bf2cd581..6df09f2828 100644
+index 5cb348f675..4735280902 100644
 --- a/drivers/net/af_packet/rte_eth_af_packet.c
 +++ b/drivers/net/af_packet/rte_eth_af_packet.c
-@@ -972,6 +972,7 @@ rte_pmd_af_packet_remove(struct rte_vdev_device *dev)
+@@ -982,6 +982,7 @@ rte_pmd_af_packet_remove(struct rte_vdev_device *dev)
  {
  	struct rte_eth_dev *eth_dev = NULL;
  	struct pmd_internals *internals;
 +	struct tpacket_req *req;
  	unsigned q;
  
- 	PMD_LOG(INFO, "Closing AF_PACKET ethdev on numa socket %u",
-@@ -992,7 +993,10 @@ rte_pmd_af_packet_remove(struct rte_vdev_device *dev)
- 		return rte_eth_dev_release_port(eth_dev);
+ 	RTE_LOG(INFO, PMD, "Closing AF_PACKET ethdev on numa socket %u\n",
+@@ -996,7 +997,10 @@ rte_pmd_af_packet_remove(struct rte_vdev_device *dev)
+ 		return -1;
  
  	internals = eth_dev->data->dev_private;
 +	req = &internals->req;


More information about the stable mailing list