wl12xx: AP mode - don't regulate FW blocks for non-active STAs
authorArik Nemtsov <arik@wizery.com>
Thu, 25 Aug 2011 09:43:13 +0000 (12:43 +0300)
committerLuciano Coelho <coelho@ti.com>
Wed, 14 Sep 2011 10:15:05 +0000 (13:15 +0300)
Check a STA is associated before regulating its PS-status in mac80211.
Should never happen, so warn as a precaution.

[Small cosmetic change wrt Kalle Valo's comment. -- Luca]

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/tx.c

index b6b2d3a..b876e9e 100644 (file)
@@ -30,6 +30,7 @@
 #include "reg.h"
 #include "ps.h"
 #include "tx.h"
+#include "event.h"
 
 static int wl1271_set_default_wep_key(struct wl1271 *wl, u8 id)
 {
@@ -132,6 +133,9 @@ static void wl1271_tx_regulate_link(struct wl1271 *wl, u8 hlid)
        if (hlid < WL1271_AP_STA_HLID_START)
                return;
 
+       if (WARN_ON(!wl1271_is_active_sta(wl, hlid)))
+           return;
+
        fw_ps = test_bit(hlid, (unsigned long *)&wl->ap_fw_ps_map);
        tx_pkts = wl->links[hlid].allocated_pkts;