[PATCH 1/2] net/xsc: improve interrupt uninstall
Renyong Wan
wanry at yunsilicon.com
Tue Sep 16 12:08:51 CEST 2025
Use synchronous callback unregister to ensure no callbacks
are running after interrupt uninstallation. This improves
stability and prevents potential use-after-free issues during
device teardown.
Signed-off-by: Rong Qian <qianr at yunsilicon.com>
Signed-off-by: Renyong Wan <wanry at yunsilicon.com>
---
drivers/net/xsc/xsc_vfio.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/xsc/xsc_vfio.c b/drivers/net/xsc/xsc_vfio.c
index c233728c5f..cda21aa3f4 100644
--- a/drivers/net/xsc/xsc_vfio.c
+++ b/drivers/net/xsc/xsc_vfio.c
@@ -1113,11 +1113,11 @@ xsc_vfio_intr_handler_install(struct xsc_dev *xdev, rte_intr_callback_fn cb, voi
static int
xsc_vfio_intr_handler_uninstall(struct xsc_dev *xdev)
{
- if (rte_intr_fd_get(xdev->pci_dev->intr_handle) >= 0)
- rte_intr_callback_unregister(xdev->pci_dev->intr_handle,
- xdev->intr_cb, xdev->intr_cb_arg);
-
- rte_intr_instance_free(xdev->intr_handle);
+ if (rte_intr_fd_get(xdev->pci_dev->intr_handle) >= 0) {
+ rte_intr_disable(xdev->pci_dev->intr_handle);
+ rte_intr_callback_unregister_sync(xdev->pci_dev->intr_handle,
+ xdev->intr_cb, xdev->intr_cb_arg);
+ }
return 0;
}
--
2.25.1
More information about the dev
mailing list