[PATCH wireless v3 1/4] wifi: iwlwifi: pcie: cancel the ME recheck work on probe failure

From: Navon John Lukose

Date: Sun Sep 13 2026 - 17:14:52 EST


iwl_pcie_check_me_status() schedules me_recheck_wk a second later. If
iwl_drv_start() then fails, the probe error path frees the trans without
cancelling it and the callback runs on freed memory.
iwl_pcie_gen1_2_remove() already cancels it; do the same here.

Sashiko's review of v2 1/3 pointed this out.

Cc: stable@xxxxxxxxxxxxxxx
Fixes: 41fff83fe6cd ("wifi: iwlwifi: pcie: check for WiAMT/CSME presence")
Signed-off-by: Navon John Lukose <navonjohnlukose@xxxxxxxxx>
---
drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c
index 28b276c..a30854d 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/trans.c
@@ -4369,6 +4369,8 @@ int iwl_pci_gen1_2_probe(struct pci_dev *pdev,

if (IS_ERR(iwl_trans->drv)) {
ret = PTR_ERR(iwl_trans->drv);
+ /* iwl_pcie_check_me_status() may have armed this */
+ cancel_delayed_work_sync(&trans_pcie->me_recheck_wk);
goto out_free_trans;
}