[88/93] ath9k: Fix sequence numbers for PAE frames

From: Greg KH
Date: Fri Feb 19 2010 - 12:04:19 EST


2.6.32-stable review patch. If anyone has any objections, please let us know.

------------------

From: Sujith <Sujith.Manoharan@xxxxxxxxxxx>

commit 6c8afef551fef87a3bf24f8a74c69a7f2f72fc82 upstream.

Currently, PAE frames are not assigned proper sequence numbers.
Since sending PAE frames as part of aggregates breaks
crupto with several APs, they are sent as normal MPDUs.
Fix the seqeuence number issue by updating the frame with the
internal sequence number.

Tested-by: Felix Fietkau <nbd@xxxxxxxxxxx>
Signed-off-by: Sujith <Sujith.Manoharan@xxxxxxxxxxx>
Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>

---
drivers/net/wireless/ath/ath9k/xmit.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1563,7 +1563,7 @@ static int ath_tx_setup_buffer(struct ie

bf->bf_frmlen = skb->len + FCS_LEN - (hdrlen & 3);

- if (conf_is_ht(&sc->hw->conf) && !is_pae(skb))
+ if (conf_is_ht(&sc->hw->conf))
bf->bf_state.bf_type |= BUF_HT;

bf->bf_flags = setup_tx_flags(sc, skb, txctl->txq);
@@ -1648,7 +1648,7 @@ static void ath_tx_start_dma(struct ath_
goto tx_done;
}

- if (tx_info->flags & IEEE80211_TX_CTL_AMPDU) {
+ if ((tx_info->flags & IEEE80211_TX_CTL_AMPDU) && !is_pae(skb)) {
/*
* Try aggregation if it's a unicast data frame
* and the destination is HT capable.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/