patch 'net/txgbe: fix a mass of interrupts' has been queued to stable release 23.11.3
Xueming Li
xuemingl at nvidia.com
Sat Dec 7 09:00:44 CET 2024
Hi,
FYI, your patch has been queued to stable release 23.11.3
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/24. 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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging
This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=6262d28b1f89515a423f33d06c1d908a65bf6bc3
Thanks.
Xueming Li <xuemingl at nvidia.com>
---
>From 6262d28b1f89515a423f33d06c1d908a65bf6bc3 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu at trustnetic.com>
Date: Fri, 15 Nov 2024 16:33:36 +0800
Subject: [PATCH] net/txgbe: fix a mass of interrupts
Cc: Xueming Li <xuemingl at nvidia.com>
[ upstream commit 916aa13f4a198aebf5383f9680cb5cd527518f2c ]
Since firmware version 0x20010, GPIO interrupt enable is set to 0xd by
default, which means enable bit 0 'tx_fault'. And GPIO interrupt polarity
is set to 0xd by default too, which means these interrupts are rising-edge
sensitive.
So when unplug the SFP module, GPIO line 0 'tx_fault' is 0 -> 1 triggers
the interrupt. However, the interrupt is not cleared. And GPIO interrupt
mask is enabled and disabled to trigger the MISC interrupt repeatedly.
Since this 'tx_fault' interrupt does not make much sense, simply clear it
to fix the issue.
Fixes: 12011b11a3d6 ("net/txgbe: adapt to MNG veto bit setting")
Signed-off-by: Jiawen Wu <jiawenwu at trustnetic.com>
---
drivers/net/txgbe/txgbe_ethdev.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index 9b44f11465..25b657d0ff 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -1553,6 +1553,9 @@ static void txgbe_reinit_gpio_intr(struct txgbe_hw *hw)
wr32(hw, TXGBE_GPIOINTMASK, 0xFF);
reg = rd32(hw, TXGBE_GPIORAWINTSTAT);
+ if (reg & TXGBE_GPIOBIT_0)
+ wr32(hw, TXGBE_GPIOEOI, TXGBE_GPIOBIT_0);
+
if (reg & TXGBE_GPIOBIT_2)
wr32(hw, TXGBE_GPIOEOI, TXGBE_GPIOBIT_2);
@@ -2776,6 +2779,8 @@ txgbe_dev_sfp_event(struct rte_eth_dev *dev)
wr32(hw, TXGBE_GPIOINTMASK, 0xFF);
reg = rd32(hw, TXGBE_GPIORAWINTSTAT);
+ if (reg & TXGBE_GPIOBIT_0)
+ wr32(hw, TXGBE_GPIOEOI, TXGBE_GPIOBIT_0);
if (reg & TXGBE_GPIOBIT_2) {
wr32(hw, TXGBE_GPIOEOI, TXGBE_GPIOBIT_2);
rte_eal_alarm_set(1000 * 100, txgbe_dev_detect_sfp, dev);
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2024-12-06 23:26:46.964933206 +0800
+++ 0086-net-txgbe-fix-a-mass-of-interrupts.patch 2024-12-06 23:26:44.103044826 +0800
@@ -1 +1 @@
-From 916aa13f4a198aebf5383f9680cb5cd527518f2c Mon Sep 17 00:00:00 2001
+From 6262d28b1f89515a423f33d06c1d908a65bf6bc3 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 916aa13f4a198aebf5383f9680cb5cd527518f2c ]
@@ -19 +21,0 @@
-Cc: stable at dpdk.org
@@ -27 +29 @@
-index a956216abb..ea9faba2c0 100644
+index 9b44f11465..25b657d0ff 100644
@@ -30 +32 @@
-@@ -1555,6 +1555,9 @@ static void txgbe_reinit_gpio_intr(struct txgbe_hw *hw)
+@@ -1553,6 +1553,9 @@ static void txgbe_reinit_gpio_intr(struct txgbe_hw *hw)
@@ -40 +42 @@
-@@ -2796,6 +2799,8 @@ txgbe_dev_sfp_event(struct rte_eth_dev *dev)
+@@ -2776,6 +2779,8 @@ txgbe_dev_sfp_event(struct rte_eth_dev *dev)
More information about the stable
mailing list