summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/wl12xx/main.c
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2011-08-25 12:43:17 +0300
committerLuciano Coelho <coelho@ti.com>2011-09-14 13:15:19 +0300
commitf1acea9a9d48174f982e14a7a488b208d39d825f (patch)
treef585625badfb454d7377cd41653f6b93b0c78657 /drivers/net/wireless/wl12xx/main.c
parentf4d3b6ab5e78fbdf3c27123cc29c44ff3d626c59 (diff)
wl12xx: AP mode - clean BA and queue state in tx_reset
Reset the BA state of all connected stations and explicitly clear the Tx queues. The latter is needed for clearing dummy packets from tx_queue_count. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/main.c')
-rw-r--r--drivers/net/wireless/wl12xx/main.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 1127a3ee36e3..45cd10ab3aac 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -3757,11 +3757,14 @@ static int wl1271_allocate_sta(struct wl1271 *wl,
return 0;
}
-static void wl1271_free_sta(struct wl1271 *wl, u8 hlid)
+void wl1271_free_sta(struct wl1271 *wl, u8 hlid)
{
int id = hlid - WL1271_AP_STA_HLID_START;
- if (WARN_ON(!test_bit(id, wl->ap_hlid_map)))
+ if (hlid < WL1271_AP_STA_HLID_START)
+ return;
+
+ if (!test_bit(id, wl->ap_hlid_map))
return;
clear_bit(id, wl->ap_hlid_map);