ath9k: prevent aggregation session deadlocks
authorFelix Fietkau <nbd@openwrt.org>
Sat, 18 May 2013 19:28:15 +0000 (21:28 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 22 May 2013 18:28:44 +0000 (14:28 -0400)
Waiting for all subframes of an existing aggregation session to drain
before allowing mac80211 to start a new one is fragile and deadlocks
caused by this behavior have been observed.

Since mac80211 has proper synchronization for aggregation session
start/stop handling, a better approach to session handling is to simply
allow mac80211 to start a new session at any time. This requires
changing the code to discard any packets outside of the BlockAck window
in the A-MPDU software retry code.

This patch implements the above and also simplifies the code.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

No differences found