mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
wifi: iwlwifi: mvm: handle link-STA allocation in restart
During HW restart, STA link changes happen while the link-sta is already allocated (had been prior to the restart). Adjust the allocation and checks to handle that. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230921110726.99b7cc754b00.Iaa0503a3100250489fed8b4bdcf60e24a96d3392@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
5f809bafe4
commit
89dc0a27e3
|
|
@ -1104,15 +1104,26 @@ int iwl_mvm_mld_update_sta_links(struct iwl_mvm *mvm,
|
|||
link_sta_dereference_protected(sta, link_id);
|
||||
mvm_vif_link = mvm_vif->link[link_id];
|
||||
|
||||
if (WARN_ON(!mvm_vif_link || !link_conf || !link_sta ||
|
||||
mvm_sta->link[link_id])) {
|
||||
if (WARN_ON(!mvm_vif_link || !link_conf || !link_sta)) {
|
||||
ret = -EINVAL;
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = iwl_mvm_mld_alloc_sta_link(mvm, vif, sta, link_id);
|
||||
if (WARN_ON(ret))
|
||||
goto err;
|
||||
if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) {
|
||||
if (WARN_ON(!mvm_sta->link[link_id])) {
|
||||
ret = -EINVAL;
|
||||
goto err;
|
||||
}
|
||||
} else {
|
||||
if (WARN_ON(mvm_sta->link[link_id])) {
|
||||
ret = -EINVAL;
|
||||
goto err;
|
||||
}
|
||||
ret = iwl_mvm_mld_alloc_sta_link(mvm, vif, sta,
|
||||
link_id);
|
||||
if (WARN_ON(ret))
|
||||
goto err;
|
||||
}
|
||||
|
||||
link_sta->agg.max_rc_amsdu_len = 1;
|
||||
ieee80211_sta_recalc_aggregates(sta);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user