diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-01-26 12:23:27 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-28 15:44:28 -0500 |
commit | 0d95521ea74735826cb2e28bebf6a07392c75bfa (patch) | |
tree | 593a9acbca2a6246f4244855bc7d4498b6dfa5bd /drivers/net/wireless/ath/ath9k/main.c | |
parent | 4d9067405c21e8596087d929f3d858d0aa5002ff (diff) |
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.c | 5 |
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 422be2675a06..23c016a81bcf 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) | |||
1294 | } else | 1294 | } else |
1295 | sc->rx.rxlink = NULL; | 1295 | sc->rx.rxlink = NULL; |
1296 | 1296 | ||
1297 | if (sc->rx.frag) { | ||
1298 | dev_kfree_skb_any(sc->rx.frag); | ||
1299 | sc->rx.frag = NULL; | ||
1300 | } | ||
1301 | |||
1297 | /* disable HAL and put h/w to sleep */ | 1302 | /* disable HAL and put h/w to sleep */ |
1298 | ath9k_hw_disable(ah); | 1303 | ath9k_hw_disable(ah); |
1299 | ath9k_hw_configpcipowersave(ah, 1, 1); | 1304 | ath9k_hw_configpcipowersave(ah, 1, 1); |