aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/main.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-01-26 18:23:27 +0100
committerJohn W. Linville <linville@tuxdriver.com>2011-01-28 15:44:28 -0500
commit0d95521ea74735826cb2e28bebf6a07392c75bfa (patch)
tree593a9acbca2a6246f4244855bc7d4498b6dfa5bd /drivers/net/wireless/ath/ath9k/main.c
parent4d9067405c21e8596087d929f3d858d0aa5002ff (diff)
downloadkernel_samsung_tuna-0d95521ea74735826cb2e28bebf6a07392c75bfa.zip
kernel_samsung_tuna-0d95521ea74735826cb2e28bebf6a07392c75bfa.tar.gz
kernel_samsung_tuna-0d95521ea74735826cb2e28bebf6a07392c75bfa.tar.bz2
ath9k: use split rx buffers to get rid of order-1 skb allocations
With this change, less CPU time is spent trying to look for consecutive pages for rx skbs. This also reduces the socket memory required for IP/UDP reassembly. Only two buffers per frame are supported. Frames spanning more buffers will be dropped, but the buffer size is enough to handle the required AMSDU size. Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 422be26..23c016a 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1294,6 +1294,11 @@ static void ath9k_stop(struct ieee80211_hw *hw)
} else
sc->rx.rxlink = NULL;
+ if (sc->rx.frag) {
+ dev_kfree_skb_any(sc->rx.frag);
+ sc->rx.frag = NULL;
+ }
+
/* disable HAL and put h/w to sleep */
ath9k_hw_disable(ah);
ath9k_hw_configpcipowersave(ah, 1, 1);