[1/4] net/qede: fix handler in interrupt callback unregister
Checks
Commit Message
From: Shahed Shaikh <shahed.shaikh@cavium.com>
Commit 023d7a0449f11 ("net/qede: fix legacy interrupt mode")
added a handler for legacy interrupt mode but forgot to
unregister same handler in rte_intr_callback_unregister()
Fixes: 245aec289338 ("net/qede: fix legacy interrupt mode")
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
---
drivers/net/qede/qede_ethdev.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
Comments
25/07/2018 00:18, Rasesh Mody:
> From: Shahed Shaikh <shahed.shaikh@cavium.com>
>
> Commit 023d7a0449f11 ("net/qede: fix legacy interrupt mode")
> added a handler for legacy interrupt mode but forgot to
> unregister same handler in rte_intr_callback_unregister()
>
> Fixes: 245aec289338 ("net/qede: fix legacy interrupt mode")
>
> Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
Series applied, thanks
@@ -1729,8 +1729,20 @@ static void qede_dev_close(struct rte_eth_dev *eth_dev)
qdev->ops->common->slowpath_stop(edev);
qdev->ops->common->remove(edev);
rte_intr_disable(&pci_dev->intr_handle);
- rte_intr_callback_unregister(&pci_dev->intr_handle,
- qede_interrupt_handler, (void *)eth_dev);
+
+ switch (pci_dev->intr_handle.type) {
+ case RTE_INTR_HANDLE_UIO_INTX:
+ case RTE_INTR_HANDLE_VFIO_LEGACY:
+ rte_intr_callback_unregister(&pci_dev->intr_handle,
+ qede_interrupt_handler_intx,
+ (void *)eth_dev);
+ break;
+ default:
+ rte_intr_callback_unregister(&pci_dev->intr_handle,
+ qede_interrupt_handler,
+ (void *)eth_dev);
+ }
+
if (ECORE_IS_CMT(edev))
rte_eal_alarm_cancel(qede_poll_sp_sb_cb, (void *)eth_dev);
}