wifi: iwlwifi: mvm: send full STA during HW restart
By using the internal station add the station is installed in firmware with zeroed MAC addresses, which is wrong. Use the full installation function instead, to fill all data. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230329100040.62d5371bb3c7.Ie25b62125a3a022f76a36bae5fed9796c18698aa@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
9deccfcd48
commit
164a52d45e
@ -572,10 +572,9 @@ static int iwl_mvm_alloc_sta_after_restart(struct iwl_mvm *mvm,
|
||||
struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
|
||||
struct ieee80211_link_sta *link_sta;
|
||||
unsigned int link_id;
|
||||
struct iwl_mvm_int_sta tmp_sta = {
|
||||
.type = mvm_sta->sta_type,
|
||||
};
|
||||
int sta_id, ret;
|
||||
/* no active link found */
|
||||
int ret = -EINVAL;
|
||||
int sta_id;
|
||||
|
||||
/* First add an empty station since allocating a queue requires
|
||||
* a valid station. Since we need a link_id to allocate a station,
|
||||
@ -598,23 +597,19 @@ static int iwl_mvm_alloc_sta_after_restart(struct iwl_mvm *mvm,
|
||||
continue;
|
||||
|
||||
sta_id = mvm_link_sta->sta_id;
|
||||
tmp_sta.sta_id = sta_id;
|
||||
ret = iwl_mvm_mld_add_int_sta_to_fw(mvm, &tmp_sta,
|
||||
vif->bss_conf.bssid,
|
||||
mvm_link->fw_link_id);
|
||||
ret = iwl_mvm_mld_cfg_sta(mvm, sta, vif, link_sta,
|
||||
link_conf, mvm_link_sta);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
rcu_assign_pointer(mvm->fw_id_to_mac_id[sta_id], sta);
|
||||
rcu_assign_pointer(mvm->fw_id_to_link_sta[sta_id], link_sta);
|
||||
iwl_mvm_realloc_queues_after_restart(mvm, sta);
|
||||
|
||||
/* since we need only one station, no need to continue */
|
||||
return 0;
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
/* no active link found */
|
||||
return -EINVAL;
|
||||
iwl_mvm_realloc_queues_after_restart(mvm, sta);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int iwl_mvm_mld_add_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
||||
|
Loading…
x
Reference in New Issue
Block a user