From d328b5ad4a521807edee1920a3c0ca04020d6230 Mon Sep 17 00:00:00 2001 From: Myeonghun Pak Date: Sun, 13 Sep 2026 16:45:34 -0400 Subject: [PATCH] net/qla3xxx: disable the PCI device on remove ql3xxx_probe() enables the PCI device and balances that reference on probe failure. However, ql3xxx_remove() releases the mappings and PCI regions without disabling the device, leaving the enable reference held after unbind. Add pci_disable_device() at the end of ql3xxx_remove() to balance the successful probe's pci_enable_device() call. Keep the existing manual cleanup and probe error handling unchanged. This issue was identified during our ongoing static-analysis research while reviewing kernel code. Cc: stable+noautosel@kernel.org # untested fix to unlikely driver error path Co-developed-by: Ijae Kim Signed-off-by: Ijae Kim Signed-off-by: Myeonghun Pak Reviewed-by: Simon Horman Link: https://patch.msgid.link/20260913204534.53825-1-mhun512@gmail.com Signed-off-by: Jakub Kicinski --- drivers/net/ethernet/qlogic/qla3xxx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c index 861a13ad7e1a..776840f60d01 100644 --- a/drivers/net/ethernet/qlogic/qla3xxx.c +++ b/drivers/net/ethernet/qlogic/qla3xxx.c @@ -3916,6 +3916,7 @@ static void ql3xxx_remove(struct pci_dev *pdev) iounmap(qdev->mem_map_registers); pci_release_regions(pdev); free_netdev(ndev); + pci_disable_device(pdev); } static struct pci_driver ql3xxx_driver = {