[dpdk-dev] [PATCH] net/qede: remove interrupt reconfigure in handler

David Marchand david.marchand at redhat.com
Tue Jun 25 15:38:57 CEST 2019


rte_intr_enable/rte_intr_disable configure the interrupt context on the
kernel side (either uio or vfio).
In VFIO case, calling it from the interrupt handlers triggers an
unneeded interrupt handlers reconfiguration.
During this reconfiguration window, the device can trigger interrupts
which are left unserviced.

Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1654824
Fixes: 245aec289338 ("net/qede: fix legacy interrupt mode")
Fixes: 2ea6f76aff40 ("qede: add core driver")
Cc: stable at dpdk.org

Signed-off-by: David Marchand <david.marchand at redhat.com>
---
 drivers/net/qede/qede_ethdev.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 82363e6..807016a 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -245,12 +245,8 @@ static void qede_interrupt_action(struct ecore_hwfn *p_hwfn)
 
 	/* Check if our device actually raised an interrupt */
 	status = ecore_int_igu_read_sisr_reg(ECORE_LEADING_HWFN(edev));
-	if (status & 0x1) {
+	if (status & 0x1)
 		qede_interrupt_action(ECORE_LEADING_HWFN(edev));
-
-		if (rte_intr_enable(eth_dev->intr_handle))
-			DP_ERR(edev, "rte_intr_enable failed\n");
-	}
 }
 
 static void
@@ -261,8 +257,6 @@ static void qede_interrupt_action(struct ecore_hwfn *p_hwfn)
 	struct ecore_dev *edev = &qdev->edev;
 
 	qede_interrupt_action(ECORE_LEADING_HWFN(edev));
-	if (rte_intr_enable(eth_dev->intr_handle))
-		DP_ERR(edev, "rte_intr_enable failed\n");
 }
 
 static void
-- 
1.8.3.1



More information about the dev mailing list