mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
wifi: iwlwifi: mvm: validate station properly in flush
If we have MLO, then the deflink.ap_sta_id cannot be used. However, we can use the new mvmvif->ap_sta pointer for the validation instead. Also don't do it multiple times for different FW instances of the same AP STA (TDLS STAs are only on a single link). Note that this isn't really working right yet since the underlying flush code hasn't been updated yet to know of multiple link STAs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230414130637.7d747df44d65.Ie5392859fab4cfb73c20b49bfee2caadef5fd8ec@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
aea99650f7
commit
d3f9cd61b1
1 changed files with 8 additions and 1 deletions
|
@ -5605,6 +5605,7 @@ void iwl_mvm_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
|||
struct iwl_mvm_vif *mvmvif;
|
||||
struct iwl_mvm_sta *mvmsta;
|
||||
struct ieee80211_sta *sta;
|
||||
bool ap_sta_done = false;
|
||||
int i;
|
||||
u32 msk = 0;
|
||||
|
||||
|
@ -5633,8 +5634,14 @@ void iwl_mvm_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
|||
if (mvmsta->vif != vif)
|
||||
continue;
|
||||
|
||||
if (sta == mvmvif->ap_sta) {
|
||||
if (ap_sta_done)
|
||||
continue;
|
||||
ap_sta_done = true;
|
||||
}
|
||||
|
||||
/* make sure only TDLS peers or the AP are flushed */
|
||||
WARN_ON_ONCE(i != mvmvif->deflink.ap_sta_id && !sta->tdls);
|
||||
WARN_ON_ONCE(sta != mvmvif->ap_sta && !sta->tdls);
|
||||
|
||||
if (drop) {
|
||||
if (iwl_mvm_flush_sta(mvm, mvmsta, false))
|
||||
|
|
Loading…
Add table
Reference in a new issue