Commit b1ecde36 authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo

ath10k: skip some commands on reassoc

It doesn't make much sense to reconfigure peer
completely upon reassociation. This will make it
easier to have a more uniform association code
across different modes.
Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent 590922a8
...@@ -1615,35 +1615,41 @@ static int ath10k_station_assoc(struct ath10k *ar, ...@@ -1615,35 +1615,41 @@ static int ath10k_station_assoc(struct ath10k *ar,
return ret; return ret;
} }
ret = ath10k_setup_peer_smps(ar, arvif, sta->addr, &sta->ht_cap); /* Re-assoc is run only to update supported rates for given station. It
if (ret) { * doesn't make much sense to reconfigure the peer completely.
ath10k_warn(ar, "failed to setup peer SMPS for vdev %d: %d\n", */
arvif->vdev_id, ret); if (!reassoc) {
return ret; ret = ath10k_setup_peer_smps(ar, arvif, sta->addr,
} &sta->ht_cap);
if (!sta->wme && !reassoc) {
arvif->num_legacy_stations++;
ret = ath10k_recalc_rtscts_prot(arvif);
if (ret) { if (ret) {
ath10k_warn(ar, "failed to recalculate rts/cts prot for vdev %d: %d\n", ath10k_warn(ar, "failed to setup peer SMPS for vdev %d: %d\n",
arvif->vdev_id, ret); arvif->vdev_id, ret);
return ret; return ret;
} }
}
ret = ath10k_install_peer_wep_keys(arvif, sta->addr); ret = ath10k_peer_assoc_qos_ap(ar, arvif, sta);
if (ret) { if (ret) {
ath10k_warn(ar, "failed to install peer wep keys for vdev %i: %d\n", ath10k_warn(ar, "failed to set qos params for STA %pM for vdev %i: %d\n",
arvif->vdev_id, ret); sta->addr, arvif->vdev_id, ret);
return ret; return ret;
} }
ret = ath10k_peer_assoc_qos_ap(ar, arvif, sta); if (!sta->wme) {
if (ret) { arvif->num_legacy_stations++;
ath10k_warn(ar, "failed to set qos params for STA %pM for vdev %i: %d\n", ret = ath10k_recalc_rtscts_prot(arvif);
sta->addr, arvif->vdev_id, ret); if (ret) {
return ret; ath10k_warn(ar, "failed to recalculate rts/cts prot for vdev %d: %d\n",
arvif->vdev_id, ret);
return ret;
}
}
ret = ath10k_install_peer_wep_keys(arvif, sta->addr);
if (ret) {
ath10k_warn(ar, "failed to install peer wep keys for vdev %i: %d\n",
arvif->vdev_id, ret);
return ret;
}
} }
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment