Skip to content

Commit 7d6ba70

Browse files
committed
Johannes Berg says: ==================== Two last-minute iwlwifi fixes: - cancel mlo_scan_work on disassoc to avoid use-after-free/init-after-queue issues - pause TCM work on suspend to avoid crashing the FW (and sometimes the host) on resume with traffic * tag 'wireless-2026-02-04' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless: wifi: iwlwifi: mvm: pause TCM on fast resume wifi: iwlwifi: mld: cancel mlo_scan_start_wk ==================== Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 7576bd9 + 45a66b7 commit 7d6ba70

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

drivers/net/wireless/intel/iwlwifi/mld/iface.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ void iwl_mld_cleanup_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
5555

5656
ieee80211_iter_keys(mld->hw, vif, iwl_mld_cleanup_keys_iter, NULL);
5757

58-
wiphy_delayed_work_cancel(mld->wiphy, &mld_vif->mlo_scan_start_wk);
59-
6058
CLEANUP_STRUCT(mld_vif);
6159
}
6260

drivers/net/wireless/intel/iwlwifi/mld/mac80211.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1759,6 +1759,8 @@ static int iwl_mld_move_sta_state_down(struct iwl_mld *mld,
17591759
wiphy_work_cancel(mld->wiphy, &mld_vif->emlsr.unblock_tpt_wk);
17601760
wiphy_delayed_work_cancel(mld->wiphy,
17611761
&mld_vif->emlsr.check_tpt_wk);
1762+
wiphy_delayed_work_cancel(mld->wiphy,
1763+
&mld_vif->mlo_scan_start_wk);
17621764

17631765
iwl_mld_reset_cca_40mhz_workaround(mld, vif);
17641766
iwl_mld_smps_workaround(mld, vif, true);

drivers/net/wireless/intel/iwlwifi/mvm/d3.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
22
/*
3-
* Copyright (C) 2012-2014, 2018-2025 Intel Corporation
3+
* Copyright (C) 2012-2014, 2018-2026 Intel Corporation
44
* Copyright (C) 2013-2015 Intel Mobile Communications GmbH
55
* Copyright (C) 2016-2017 Intel Deutschland GmbH
66
*/
@@ -3239,6 +3239,8 @@ void iwl_mvm_fast_suspend(struct iwl_mvm *mvm)
32393239

32403240
IWL_DEBUG_WOWLAN(mvm, "Starting fast suspend flow\n");
32413241

3242+
iwl_mvm_pause_tcm(mvm, true);
3243+
32423244
mvm->fast_resume = true;
32433245
set_bit(IWL_MVM_STATUS_IN_D3, &mvm->status);
32443246

@@ -3295,6 +3297,8 @@ int iwl_mvm_fast_resume(struct iwl_mvm *mvm)
32953297
mvm->trans->state = IWL_TRANS_NO_FW;
32963298
}
32973299

3300+
iwl_mvm_resume_tcm(mvm);
3301+
32983302
out:
32993303
clear_bit(IWL_MVM_STATUS_IN_D3, &mvm->status);
33003304
mvm->fast_resume = false;

0 commit comments

Comments
 (0)