[PATCH] net: txgbe: use vector 0 for misc interrupts without MSI-X
From: <hidden>
Date: 2026-08-14 00:13:08
Also in:
stable
In non-MSI-X mode, queue and miscellaneous interrupts share vector 0.
TXGBE_INTR_MISC(wx) instead selects the MSI-X-only miscellaneous vector,
leaving vector 0 masked after it is serviced. Use BIT(0) for the
non-MSI-X fallback at each miscellaneous interrupt unmask site.
Fixes: e37546ad1f9b ("net: wangxun: revert the adjustment of the IRQ
vector sequence")
Signed-off-by: Diego Fernando Mancera Gomez <redacted>
---
drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/wangxun/txgbe/txgbe_irq.cb/drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c index 8746318ad3bc..6b5542cb2161 100644
--- a/drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c
+++ b/drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c@@ -31,7 +31,10 @@ void txgbe_irq_enable(struct wx *wx, bool queues) wr32(wx, WX_PX_MISC_IEN, misc_ien); /* unmask interrupt */ - wx_intr_enable(wx, TXGBE_INTR_MISC(wx)); + if (wx->pdev->msix_enabled) + wx_intr_enable(wx, TXGBE_INTR_MISC(wx)); + else + wx_intr_enable(wx, BIT(0)); if (queues) wx_intr_enable(wx, TXGBE_INTR_QALL(wx)); }
@@ -183,7 +186,10 @@ static irqreturn_t txgbe_misc_irq_thread_fn(intirq, void *data) nhandled++; } - wx_intr_enable(wx, TXGBE_INTR_MISC(wx)); + if (wx->pdev->msix_enabled) + wx_intr_enable(wx, TXGBE_INTR_MISC(wx)); + else + wx_intr_enable(wx, BIT(0)); return (nhandled > 0 ? IRQ_HANDLED : IRQ_NONE); } -- 2.54.0.windows.1