aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-12-18 17:23:38 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-12-18 17:23:38 +0000
commit17d77908905a293ca8a3a0c6f6c11397918bb0bc (patch)
treeb8960e174721a366125bde5b559ca258e1b26f4c
parent589062b2d0f220fa0ae9a1b0240874b11704b846 (diff)
downloadupstream-17d77908905a293ca8a3a0c6f6c11397918bb0bc.tar.gz
upstream-17d77908905a293ca8a3a0c6f6c11397918bb0bc.tar.bz2
upstream-17d77908905a293ca8a3a0c6f6c11397918bb0bc.zip
mac80211: significantly reduce the cpu load caused by excessive skb header cloning
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24669 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/mac80211/patches/540-mac80211_tx_optimization.patch14
1 files changed, 14 insertions, 0 deletions
diff --git a/package/mac80211/patches/540-mac80211_tx_optimization.patch b/package/mac80211/patches/540-mac80211_tx_optimization.patch
new file mode 100644
index 0000000000..e239abd828
--- /dev/null
+++ b/package/mac80211/patches/540-mac80211_tx_optimization.patch
@@ -0,0 +1,14 @@
+--- a/net/mac80211/tx.c
++++ b/net/mac80211/tx.c
+@@ -1549,8 +1549,10 @@ static int ieee80211_skb_resize(struct i
+
+ if (skb_header_cloned(skb))
+ I802_DEBUG_INC(local->tx_expand_skb_head_cloned);
+- else
++ else if (head_need || tail_need)
+ I802_DEBUG_INC(local->tx_expand_skb_head);
++ else
++ return;
+
+ if (pskb_expand_head(skb, head_need, tail_need, GFP_ATOMIC)) {
+ wiphy_debug(local->hw.wiphy,