diff options
author | Arik Nemtsov <arik@wizery.com> | 2013-03-12 17:19:37 +0200 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2013-03-25 12:33:11 +0200 |
commit | 2fec3d27660fe4fe140374cd7d84ec799f3ebb15 (patch) | |
tree | 284ab08b36d12c3d6a7c8310444051e8678476f7 /drivers/net/wireless/ti/wlcore/main.c | |
parent | 37c68ea6997aac2faf21b83c28eda3b1659c4d45 (diff) | |
download | linux-3.10-2fec3d27660fe4fe140374cd7d84ec799f3ebb15.tar.gz linux-3.10-2fec3d27660fe4fe140374cd7d84ec799f3ebb15.tar.bz2 linux-3.10-2fec3d27660fe4fe140374cd7d84ec799f3ebb15.zip |
wlcore: don't risk using stale HLID during .sta_state callback
The HLID of a STA can change, particularly during recovery. Don't cache
the HLID before it was potentially allocated.
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti/wlcore/main.c')
-rw-r--r-- | drivers/net/wireless/ti/wlcore/main.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c index 389ae1a459a..c3e2471c46f 100644 --- a/drivers/net/wireless/ti/wlcore/main.c +++ b/drivers/net/wireless/ti/wlcore/main.c @@ -4620,13 +4620,11 @@ static int wl12xx_update_sta_state(struct wl1271 *wl, enum ieee80211_sta_state new_state) { struct wl1271_station *wl_sta; - u8 hlid; bool is_ap = wlvif->bss_type == BSS_TYPE_AP_BSS; bool is_sta = wlvif->bss_type == BSS_TYPE_STA_BSS; int ret; wl_sta = (struct wl1271_station *)sta->drv_priv; - hlid = wl_sta->hlid; /* Add station (AP mode) */ if (is_ap && @@ -4652,12 +4650,12 @@ static int wl12xx_update_sta_state(struct wl1271 *wl, /* Authorize station (AP mode) */ if (is_ap && new_state == IEEE80211_STA_AUTHORIZED) { - ret = wl12xx_cmd_set_peer_state(wl, wlvif, hlid); + ret = wl12xx_cmd_set_peer_state(wl, wlvif, wl_sta->hlid); if (ret < 0) return ret; ret = wl1271_acx_set_ht_capabilities(wl, &sta->ht_cap, true, - hlid); + wl_sta->hlid); if (ret) return ret; |