summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/rc.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-09-20 13:45:38 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-09-21 11:05:33 -0400
commit90fa539ca3f07323da5a90f5c8f4e5cd952875e7 (patch)
tree8d8bb5a53f2316cd36f8b4c709e7db8eafe3db89 /drivers/net/wireless/ath/ath9k/rc.c
parent231c3a1f0630c07a584905507a1cb7b705a56ab7 (diff)
downloadop-kernel-dev-90fa539ca3f07323da5a90f5c8f4e5cd952875e7.zip
op-kernel-dev-90fa539ca3f07323da5a90f5c8f4e5cd952875e7.tar.gz
ath9k: clean up / fix aggregation session flush
The tid aggregation cleanup is a bit fragile, as it discards failed subframes in some places, and retransmits them in others. This could block the cleanup of an existing aggregation session, if a retransmission for a tid is issued, yet the tid is never scheduled again because of the cleanup state. Fix this by getting rid of as many subframes as possible, as early as possible, and immediately transmitting pending subframes as regular HT frames instead of waiting for the cleanup to complete. Drop all pending subframes while keeping track of the Block ACK window during aggregate tx completion to prevent sending out stale subframes, which could confuse the receiver side. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Cc: stable@kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/rc.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud