In i40e_dev_interrupt_handler, when call rte_intr_enable, We should parse dev->intr_handle but not intr_handle. intr_handle is the copy of dev->intr_handle when it is registered, but parameter of dev->intr_handle is possible to be modifed later in i40e driver.
Fixes: 2ce7a1ed09fc ("net/i40e: localize mapping of ethdev to PCI device") Signed-off-by: Qi Zhang <qi.z.zh...@intel.com> --- drivers/net/i40e/i40e_ethdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 4492bcc..1032d0f 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -5770,7 +5770,7 @@ i40e_dev_handle_aq_msg(struct rte_eth_dev *dev) * void */ static void -i40e_dev_interrupt_handler(struct rte_intr_handle *intr_handle, +i40e_dev_interrupt_handler(__rte_unused struct rte_intr_handle *intr_handle, void *param) { struct rte_eth_dev *dev = (struct rte_eth_dev *)param; @@ -5817,7 +5817,7 @@ i40e_dev_interrupt_handler(struct rte_intr_handle *intr_handle, done: /* Enable interrupt */ i40e_pf_enable_irq0(hw); - rte_intr_enable(intr_handle); + rte_intr_enable(dev->intr_handle); } static int -- 2.9.3