[dpdk-stable] patch 'net/ixgbe: stop link setup alarm handler before start' has been queued to stable release 18.08.1
Kevin Traynor
ktraynor at redhat.com
Thu Nov 29 14:20:05 CET 2018
Hi,
FYI, your patch has been queued to stable release 18.08.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 12/08/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Kevin Traynor
---
>From 954374b97b5ef5ffe2be5ee8b85c5650fe6f16c7 Mon Sep 17 00:00:00 2001
From: Ilya Maximets <i.maximets at samsung.com>
Date: Thu, 8 Nov 2018 13:24:01 +0300
Subject: [PATCH] net/ixgbe: stop link setup alarm handler before start
[ upstream commit 916193dda6fb400114c0ffc5615e74ca13d50720 ]
We should stop alarm handler before resetting the HW to
avoid concurrent device reconfiguration.
Fixes: 0408f47ba4d6 ("net/ixgbe: fix busy polling while fiber link update")
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Tested-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Qi Zhang <qi.z.zhang at intel.com>
---
drivers/net/ixgbe/ixgbe_ethdev.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 0293022b2..6b04820da 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -2553,4 +2553,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
}
+ /* Stop the link setup handler before resetting the HW. */
+ rte_eal_alarm_cancel(ixgbe_dev_setup_link_alarm_handler, dev);
+
/* disable uio/vfio intr/eventfd mapping */
rte_intr_disable(intr_handle);
@@ -2735,6 +2738,4 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
goto error;
- ixgbe_dev_link_update(dev, 0);
-
skip_link_setup:
@@ -2772,4 +2773,10 @@ skip_link_setup:
"before starting the port");
+ /*
+ * Update link status right before return, because it may
+ * start link configuration process in a separate thread.
+ */
+ ixgbe_dev_link_update(dev, 0);
+
return 0;
@@ -5067,4 +5074,7 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
PMD_INIT_FUNC_TRACE();
+ /* Stop the link setup handler before resetting the HW. */
+ rte_eal_alarm_cancel(ixgbe_dev_setup_link_alarm_handler, dev);
+
err = hw->mac.ops.reset_hw(hw);
if (err) {
@@ -5102,6 +5112,4 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
ixgbevf_dev_rxtx_start(dev);
- ixgbevf_dev_link_update(dev, 0);
-
/* check and configure queue intr-vector mapping */
if (rte_intr_cap_multiple(intr_handle) &&
@@ -5141,4 +5149,10 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
ixgbevf_intr_enable(dev);
+ /*
+ * Update link status right before return, because it may
+ * start link configuration process in a separate thread.
+ */
+ ixgbevf_dev_link_update(dev, 0);
+
return 0;
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 13:11:35.150378059 +0000
+++ 0004-net-ixgbe-stop-link-setup-alarm-handler-before-start.patch 2018-11-29 13:11:34.000000000 +0000
@@ -1,13 +1,14 @@
-From 916193dda6fb400114c0ffc5615e74ca13d50720 Mon Sep 17 00:00:00 2001
+From 954374b97b5ef5ffe2be5ee8b85c5650fe6f16c7 Mon Sep 17 00:00:00 2001
From: Ilya Maximets <i.maximets at samsung.com>
Date: Thu, 8 Nov 2018 13:24:01 +0300
Subject: [PATCH] net/ixgbe: stop link setup alarm handler before start
+[ upstream commit 916193dda6fb400114c0ffc5615e74ca13d50720 ]
+
We should stop alarm handler before resetting the HW to
avoid concurrent device reconfiguration.
Fixes: 0408f47ba4d6 ("net/ixgbe: fix busy polling while fiber link update")
-CC: stable at dpdk.org
Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
Tested-by: Anatoly Burakov <anatoly.burakov at intel.com>
@@ -17,10 +18,10 @@
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
-index c9e82d515..8148577f5 100644
+index 0293022b2..6b04820da 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
-@@ -2550,4 +2550,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
+@@ -2553,4 +2553,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
}
+ /* Stop the link setup handler before resetting the HW. */
@@ -28,14 +29,14 @@
+
/* disable uio/vfio intr/eventfd mapping */
rte_intr_disable(intr_handle);
-@@ -2732,6 +2735,4 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
+@@ -2735,6 +2738,4 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
goto error;
- ixgbe_dev_link_update(dev, 0);
-
skip_link_setup:
-@@ -2769,4 +2770,10 @@ skip_link_setup:
+@@ -2772,4 +2773,10 @@ skip_link_setup:
"before starting the port");
+ /*
@@ -46,7 +47,7 @@
+
return 0;
-@@ -5062,4 +5069,7 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
+@@ -5067,4 +5074,7 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
PMD_INIT_FUNC_TRACE();
+ /* Stop the link setup handler before resetting the HW. */
@@ -54,14 +55,14 @@
+
err = hw->mac.ops.reset_hw(hw);
if (err) {
-@@ -5097,6 +5107,4 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
+@@ -5102,6 +5112,4 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
ixgbevf_dev_rxtx_start(dev);
- ixgbevf_dev_link_update(dev, 0);
-
/* check and configure queue intr-vector mapping */
if (rte_intr_cap_multiple(intr_handle) &&
-@@ -5136,4 +5144,10 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
+@@ -5141,4 +5149,10 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
ixgbevf_intr_enable(dev);
+ /*
More information about the stable
mailing list