aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2014-02-10 06:47:20 -0500
committerJohn W. Linville <linville@tuxdriver.com>2014-02-13 15:20:14 -0500
commit7a536265b0b470893c13dc0f094e3078521818e2 (patch)
treec5be4bb38d2bc0980c58f021c7a4a140e2fb7a2d /drivers/net
parent51ae14d0eae31a7d678c201c9664efbb373f97fa (diff)
wlcore: AP: don't start mac80211 PS on non-peer HLIDs
It seems the wl18xx FW sometimes sends spurious changes on the PSM state of the broadcast HLID. This causes us to search for a station on a non-peer link and fail, causing warnings in our log. Prevent the driver from considering PSM changes for any non-peer HLIDs. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ti/wlcore/ps.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/ti/wlcore/ps.c b/drivers/net/wireless/ti/wlcore/ps.c
index 26bfc365ba70..b52516eed7b2 100644
--- a/drivers/net/wireless/ti/wlcore/ps.c
+++ b/drivers/net/wireless/ti/wlcore/ps.c
@@ -280,7 +280,11 @@ void wl12xx_ps_link_start(struct wl1271 *wl, struct wl12xx_vif *wlvif,
280 struct ieee80211_sta *sta; 280 struct ieee80211_sta *sta;
281 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); 281 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif);
282 282
283 if (test_bit(hlid, &wl->ap_ps_map)) 283 if (WARN_ON_ONCE(wlvif->bss_type != BSS_TYPE_AP_BSS))
284 return;
285
286 if (!test_bit(hlid, wlvif->ap.sta_hlid_map) ||
287 test_bit(hlid, &wl->ap_ps_map))
284 return; 288 return;
285 289
286 wl1271_debug(DEBUG_PSM, "start mac80211 PSM on hlid %d pkts %d " 290 wl1271_debug(DEBUG_PSM, "start mac80211 PSM on hlid %d pkts %d "