summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath9k/channel.c
diff options
context:
space:
mode:
authorSujith Manoharan <c_manoha@qca.qualcomm.com>2014-09-17 09:15:56 (GMT)
committerJohn W. Linville <linville@tuxdriver.com>2014-09-26 21:06:49 (GMT)
commitcb35582ab4d742c1be48c4e51712a19fa202e978 (patch)
tree354b81e73beff0f4f09c46c3235eab5e0f169b3b /drivers/net/wireless/ath/ath9k/channel.c
parent093ec3c5337434f40d77c1af06c139da3e5ba6dc (diff)
downloadlinux-cb35582ab4d742c1be48c4e51712a19fa202e978.tar.xz
ath9k: Cache BSS information
Using the BSS information stored in mac80211 directly is racy in certain conditions. For example, in a MCC setup, if the scheduler is switching channels when a local deauth is issued, calculation of the opmode/bssid etc. is incorrect. To avoid this, store the bss params in the driver and use it. Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/channel.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/channel.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
index 77c99eb5..b93f83c 100644
--- a/drivers/net/wireless/ath/ath9k/channel.c
+++ b/drivers/net/wireless/ath/ath9k/channel.c
@@ -211,7 +211,7 @@ void ath_chanctx_check_active(struct ath_softc *sc, struct ath_chanctx *ctx)
switch (vif->type) {
case NL80211_IFTYPE_P2P_CLIENT:
case NL80211_IFTYPE_STATION:
- if (vif->bss_conf.assoc)
+ if (avp->assoc)
active = true;
break;
default:
@@ -917,7 +917,7 @@ ath_chanctx_send_vif_ps_frame(struct ath_softc *sc, struct ath_vif *avp,
switch (vif->type) {
case NL80211_IFTYPE_STATION:
- if (!vif->bss_conf.assoc)
+ if (!avp->assoc)
return false;
skb = ieee80211_nullfunc_get(sc->hw, vif);
@@ -1339,7 +1339,7 @@ void ath9k_p2p_ps_timer(void *priv)
rcu_read_lock();
vif = avp->vif;
- sta = ieee80211_find_sta(vif, vif->bss_conf.bssid);
+ sta = ieee80211_find_sta(vif, avp->bssid);
if (!sta)
goto out;