[dpdk-stable] patch 'net/cxgbe: avoid polling link status before device start' has been queued to LTS release 18.11.6

Kevin Traynor ktraynor at redhat.com
Tue Dec 3 19:26:28 CET 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.6

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/10/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.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/5ba12b7d0ce10864aa8e160d403882261ff62b29

Thanks.

Kevin.

---
>From 5ba12b7d0ce10864aa8e160d403882261ff62b29 Mon Sep 17 00:00:00 2001
From: Rahul Lakkireddy <rahul.lakkireddy at chelsio.com>
Date: Sat, 28 Sep 2019 02:00:06 +0530
Subject: [PATCH] net/cxgbe: avoid polling link status before device start

[ upstream commit 10fb9e47f6ec0093397b62f2c74f221719f967f4 ]

Link updates come in firmware event queue, which is only created
when device starts. So, don't poll for link status if firmware
event queue is not yet created.

This fixes NULL dereference when accessing non existent firmware
event queue.

Fixes: 265af08e75ba ("net/cxgbe: add link up and down ops")

Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy at chelsio.com>
---
 drivers/net/cxgbe/cxgbe_ethdev.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index 5839a7bef..07063fa7d 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe/cxgbe_ethdev.c
@@ -203,4 +203,7 @@ int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
 
 	for (i = 0; i < CXGBE_LINK_STATUS_POLL_CNT; i++) {
+		if (!s->fw_evtq.desc)
+			break;
+
 		cxgbe_poll(&s->fw_evtq, NULL, budget, &work_done);
 
@@ -236,4 +239,7 @@ int cxgbe_dev_set_link_up(struct rte_eth_dev *dev)
 	int ret;
 
+	if (!s->fw_evtq.desc)
+		return -ENOMEM;
+
 	/* Flush all link events */
 	cxgbe_poll(&s->fw_evtq, NULL, budget, &work_done);
@@ -262,4 +268,7 @@ int cxgbe_dev_set_link_down(struct rte_eth_dev *dev)
 	int ret;
 
+	if (!s->fw_evtq.desc)
+		return -ENOMEM;
+
 	/* Flush all link events */
 	cxgbe_poll(&s->fw_evtq, NULL, budget, &work_done);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-03 17:29:52.931870396 +0000
+++ 0019-net-cxgbe-avoid-polling-link-status-before-device-st.patch	2019-12-03 17:29:51.720750578 +0000
@@ -1 +1 @@
-From 10fb9e47f6ec0093397b62f2c74f221719f967f4 Mon Sep 17 00:00:00 2001
+From 5ba12b7d0ce10864aa8e160d403882261ff62b29 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 10fb9e47f6ec0093397b62f2c74f221719f967f4 ]
+
@@ -14 +15,0 @@
-Cc: stable at dpdk.org
@@ -22 +23 @@
-index 5d74f8ba3..5df8d746c 100644
+index 5839a7bef..07063fa7d 100644
@@ -25 +26 @@
-@@ -207,4 +207,7 @@ int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
+@@ -203,4 +203,7 @@ int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
@@ -33 +34 @@
-@@ -240,4 +243,7 @@ int cxgbe_dev_set_link_up(struct rte_eth_dev *dev)
+@@ -236,4 +239,7 @@ int cxgbe_dev_set_link_up(struct rte_eth_dev *dev)
@@ -41 +42 @@
-@@ -266,4 +272,7 @@ int cxgbe_dev_set_link_down(struct rte_eth_dev *dev)
+@@ -262,4 +268,7 @@ int cxgbe_dev_set_link_down(struct rte_eth_dev *dev)



More information about the stable mailing list