[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