ath9k: fix duration calculation for non-aggregated packets
authorFelix Fietkau <nbd@openwrt.org>
Thu, 5 Dec 2013 14:20:53 +0000 (15:20 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 9 Dec 2013 19:59:13 +0000 (14:59 -0500)
commitbbf807bc0697e577c137a5fffb30fca7c6a45da1
tree4f33c739754088bd7583048f6abfb8a68d986fd5
parenta59b40b30f3f51bf5c56c15a7dc4da11b424a34b
ath9k: fix duration calculation for non-aggregated packets

When not aggregating packets, fi->framelen should be passed in as length
to calculate the duration. Before the tx path rework, ath_tx_fill_desc
was called for either one aggregate, or one single frame, with the
length of the packet or the aggregate as a parameter.
After the rework, ath_tx_sched_aggr can pass a burst of single frames to
ath_tx_fill_desc and sets len=0.
Fix broken duration calculation by overriding the length in ath_tx_fill_desc
before passing it to ath_buf_set_rate.

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