29 lines
969 B
Diff
29 lines
969 B
Diff
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>
|
|
|
|
---
|
|
drivers/net/wireless/ti/wlcore/ps.c | 6 +++++-
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
--- 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
|
|
struct ieee80211_sta *sta;
|
|
struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif);
|
|
|
|
- if (test_bit(hlid, &wl->ap_ps_map))
|
|
+ if (WARN_ON_ONCE(wlvif->bss_type != BSS_TYPE_AP_BSS))
|
|
+ return;
|
|
+
|
|
+ if (!test_bit(hlid, wlvif->ap.sta_hlid_map) ||
|
|
+ test_bit(hlid, &wl->ap_ps_map))
|
|
return;
|
|
|
|
wl1271_debug(DEBUG_PSM, "start mac80211 PSM on hlid %d pkts %d "
|