aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath5k/base.c
diff options
context:
space:
mode:
authorBob Copeland <me@bobcopeland.com>2009-02-15 12:06:12 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-02-27 14:52:37 -0500
commit362695e11a09ff016ef00dc45b934b1daf862091 (patch)
treea85324e9e679ab79089d76a5036b41df9663c6bd /drivers/net/wireless/ath5k/base.c
parentacf3c1a592a070edeede5dfa38c0ce3395357de0 (diff)
ath5k: compute rts/cts duration after computing full pktlen
RTS and CTS-to-self duration needs to go after ICV len is considered. Changes-licensed-under: 3-Clause-BSD Signed-off-by: Bob Copeland <me@bobcopeland.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath5k/base.c')
-rw-r--r--drivers/net/wireless/ath5k/base.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index fa6a21646bf8..bce825b9ff1b 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -1220,6 +1220,10 @@ ath5k_txbuf_setup(struct ath5k_softc *sc, struct ath5k_buf *bf)
1220 1220
1221 pktlen = skb->len; 1221 pktlen = skb->len;
1222 1222
1223 if (info->control.hw_key) {
1224 keyidx = info->control.hw_key->hw_key_idx;
1225 pktlen += info->control.hw_key->icv_len;
1226 }
1223 if (rc_flags & IEEE80211_TX_RC_USE_RTS_CTS) { 1227 if (rc_flags & IEEE80211_TX_RC_USE_RTS_CTS) {
1224 flags |= AR5K_TXDESC_RTSENA; 1228 flags |= AR5K_TXDESC_RTSENA;
1225 cts_rate = ieee80211_get_rts_cts_rate(sc->hw, info)->hw_value; 1229 cts_rate = ieee80211_get_rts_cts_rate(sc->hw, info)->hw_value;
@@ -1232,11 +1236,6 @@ ath5k_txbuf_setup(struct ath5k_softc *sc, struct ath5k_buf *bf)
1232 duration = le16_to_cpu(ieee80211_ctstoself_duration(sc->hw, 1236 duration = le16_to_cpu(ieee80211_ctstoself_duration(sc->hw,
1233 sc->vif, pktlen, info)); 1237 sc->vif, pktlen, info));
1234 } 1238 }
1235
1236 if (info->control.hw_key) {
1237 keyidx = info->control.hw_key->hw_key_idx;
1238 pktlen += info->control.hw_key->icv_len;
1239 }
1240 ret = ah->ah_setup_tx_desc(ah, ds, pktlen, 1239 ret = ah->ah_setup_tx_desc(ah, ds, pktlen,
1241 ieee80211_get_hdrlen_from_skb(skb), AR5K_PKT_TYPE_NORMAL, 1240 ieee80211_get_hdrlen_from_skb(skb), AR5K_PKT_TYPE_NORMAL,
1242 (sc->power_level * 2), 1241 (sc->power_level * 2),