[dpdk-stable] [PATCH 20.11] net/nfp: cancel delayed LSC work in port close logic

heinrich.kuhn at corigine.com heinrich.kuhn at corigine.com
Fri Nov 12 07:51:24 CET 2021


From: Heinrich Kuhn <heinrich.kuhn at corigine.com>

[ upstream commit 851f03e1eab7d29a81078832b49f2977e9562524 ]

The link state change interrupt handler of the NFP PMD will delay the
actual LSC work for a short period to ensure the link is stable. If the
link of the port changes state and the port is closed immediately after
the link event then a segmentation fault will occur. This happens
because the delayed LSC work eventually triggers and this logic will try
to access private port data that had been released when the port was
closed.

Fixes: 6c53f87b3497 ("nfp: add link status interrupt")
Cc: stable at dpdk.org

Signed-off-by: Heinrich Kuhn <heinrich.kuhn at corigine.com>
Signed-off-by: Simon Horman <simon.horman at corigine.com>
---
 drivers/net/nfp/nfp_net.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index 91c6678c7..39a6d3f57 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -907,6 +907,10 @@ nfp_net_close(struct rte_eth_dev *dev)
 				     nfp_net_dev_interrupt_handler,
 				     (void *)dev);
 
+	/* Cancel possible impending LSC work here before releasing the port*/
+	rte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler,
+			     (void *)dev);
+
 	/*
 	 * The ixgbe PMD driver disables the pcie master on the
 	 * device. The i40e does not...
-- 
2.30.1 (Apple Git-130)



More information about the stable mailing list