diff options
| author | Shaul Triebitz <[email protected]> | 2024-03-11 06:28:07 +0000 |
|---|---|---|
| committer | Johannes Berg <[email protected]> | 2024-03-25 14:36:03 +0000 |
| commit | 180c2921e1d5e29581e7dc09d36d6be9734e42e7 (patch) | |
| tree | 258ce04c96e772f1d3dcb56e50f5558a4c432e0e /drivers/net/wireless/intel/iwlwifi/mvm/d3.c | |
| parent | wifi: iwlwifi: mvm: fix the sta id in offload (diff) | |
| download | kernel-180c2921e1d5e29581e7dc09d36d6be9734e42e7.tar.gz kernel-180c2921e1d5e29581e7dc09d36d6be9734e42e7.zip | |
wifi: iwlwifi: mvm: stop assuming sta id 0 in d3
In MLO, the station id in d3 can be other than 0.
Do not assume the station id is 0 when waking
up from d3.
Signed-off-by: Shaul Triebitz <[email protected]>
Signed-off-by: Miri Korenblit <[email protected]>
Link: https://msgid.link/20240311081938.6379619f2987.I83de9d868224df76eee8df8dbcf352636535821a@changeid
Signed-off-by: Johannes Berg <[email protected]>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/d3.c')
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/d3.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c index 10fed7df853c..cfbfa8e7040d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -2552,6 +2552,12 @@ static bool iwl_mvm_query_wakeup_reasons(struct iwl_mvm *mvm, int i; bool keep = false; struct iwl_mvm_sta *mvm_ap_sta; + struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); + int link_id = vif->active_links ? __ffs(vif->active_links) : 0; + struct iwl_mvm_vif_link_info *mvm_link = mvmvif->link[link_id]; + + if (WARN_ON(!mvm_link)) + goto out_unlock; if (!status) goto out_unlock; @@ -2559,8 +2565,7 @@ static bool iwl_mvm_query_wakeup_reasons(struct iwl_mvm *mvm, IWL_DEBUG_WOWLAN(mvm, "wakeup reason 0x%x\n", status->wakeup_reasons); - /* still at hard-coded place 0 for D3 image */ - mvm_ap_sta = iwl_mvm_sta_from_staid_protected(mvm, 0); + mvm_ap_sta = iwl_mvm_sta_from_staid_protected(mvm, mvm_link->ap_sta_id); if (!mvm_ap_sta) goto out_unlock; |
