ath9k: fix pending tx frames accounting
authorFelix Fietkau <nbd@openwrt.org>
Wed, 16 Jul 2014 18:26:05 +0000 (20:26 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 18 Jul 2014 17:45:25 +0000 (13:45 -0400)
commitd954cd770051cde27a9da8f2627acd5bc709ffbb
treeed4e510b4b8205c45c7b28c4be690b3064b41000
parentd1d3799fcb1037357b54be44e796a6253484268e
ath9k: fix pending tx frames accounting

Packets originally buffered for the regular hardware tx queues can end
up being transmitted through the U-APSD queue (via PS-Poll or U-APSD).
When packets are dropped due to retransmit failures, the pending frames
counter is not always updated properly.
Fix this by keeping track of the queue that a frame was accounted for in
the ath_frame_info struct, and using that on completion to decide
whether the counter should be updated.
This fixes some spurious transmit queue hangs.

Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/xmit.c