aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-12-04 22:59:36 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-12-04 22:59:36 +0000
commiteef37ce291c8a70887ea85f3045a85294b354d9d (patch)
treeb347dbfbcbb59551b784944ee15eeee95aa705b5
parent12f66d3324ed766dcdc72537004b80f1edeb3fa1 (diff)
downloadupstream-eef37ce291c8a70887ea85f3045a85294b354d9d.tar.gz
upstream-eef37ce291c8a70887ea85f3045a85294b354d9d.tar.bz2
upstream-eef37ce291c8a70887ea85f3045a85294b354d9d.zip
ath9k: fix length handling of unaggregated frames (might resolve some rts/cts issues)
Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38995 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/kernel/mac80211/patches/300-pending_work.patch17
1 files changed, 14 insertions, 3 deletions
diff --git a/package/kernel/mac80211/patches/300-pending_work.patch b/package/kernel/mac80211/patches/300-pending_work.patch
index 4532a03d57..b3583a3896 100644
--- a/package/kernel/mac80211/patches/300-pending_work.patch
+++ b/package/kernel/mac80211/patches/300-pending_work.patch
@@ -2272,7 +2272,18 @@
-EXPORT_SYMBOL(ath9k_hw_wow_enable);
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -1786,6 +1786,9 @@ bool ath_drain_all_txq(struct ath_softc
+@@ -1276,6 +1276,10 @@ static void ath_tx_fill_desc(struct ath_
+ if (!rts_thresh || (len > rts_thresh))
+ rts = true;
+ }
++
++ if (!aggr)
++ len = fi->framelen;
++
+ ath_buf_set_rate(sc, bf, &info, len, rts);
+ }
+
+@@ -1786,6 +1790,9 @@ bool ath_drain_all_txq(struct ath_softc
if (!ATH_TXQ_SETUP(sc, i))
continue;
@@ -2282,7 +2293,7 @@
if (ath9k_hw_numtxpending(ah, sc->tx.txq[i].axq_qnum))
npend |= BIT(i);
}
-@@ -2749,6 +2752,8 @@ void ath_tx_node_cleanup(struct ath_soft
+@@ -2749,6 +2756,8 @@ void ath_tx_node_cleanup(struct ath_soft
}
}
@@ -2291,7 +2302,7 @@
int ath9k_tx99_send(struct ath_softc *sc, struct sk_buff *skb,
struct ath_tx_control *txctl)
{
-@@ -2791,3 +2796,5 @@ int ath9k_tx99_send(struct ath_softc *sc
+@@ -2791,3 +2800,5 @@ int ath9k_tx99_send(struct ath_softc *sc
return 0;
}