aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>2025-04-23 09:16:38 +0300
committerJohannes Berg <johannes.berg@intel.com>2025-04-23 15:37:40 +0200
commit092d41f13d23d9ee1730515cb15711e723e950bd (patch)
treefe6977c2c14e7c0cd1604a05581d3a741e5e1a97
parentwifi: iwlwifi: mld: properly handle async notification in op mode start (diff)
downloadwireguard-linux-092d41f13d23d9ee1730515cb15711e723e950bd.tar.xz
wireguard-linux-092d41f13d23d9ee1730515cb15711e723e950bd.zip
wifi: iwlwifi: mld: inform trans on init failure
If starting the op mode failed, the opmode memory is being freed, so trans->op_mode needs to be NULLified. Otherwise, trans will access already freed memory. Call iwl_trans_op_mode_leave in that case. Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Link: https://patch.msgid.link/20250423091408.c7e178748ef7.Ifaf15bdd8ef8c59e04effbd2e7aa0034b30eeacb@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to '')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mld/mld.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mld.c b/drivers/net/wireless/intel/iwlwifi/mld/mld.c
index 562d320b2c3a..87624730fb50 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/mld.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/mld.c
@@ -425,7 +425,7 @@ iwl_op_mode_mld_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
if (ret) {
wiphy_unlock(mld->wiphy);
rtnl_unlock();
- goto free_hw;
+ goto err;
}
/* We are about to stop the FW. Notifications may require an
@@ -471,7 +471,8 @@ leds_exit:
iwl_mld_leds_exit(mld);
free_nvm:
kfree(mld->nvm_data);
-free_hw:
+err:
+ iwl_trans_op_mode_leave(mld->trans);
ieee80211_free_hw(mld->hw);
return ERR_PTR(ret);
}