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
commit121b27fb2b3554653aae0f5cfec0c626f29bf75a (patch)
tree30bc1c24c0c6cd7efec25523c386e84242822af7
parent4e19240b9b9a87202244be617d706f4f0668bacb (diff)
downloadupstream-121b27fb2b3554653aae0f5cfec0c626f29bf75a.tar.gz
upstream-121b27fb2b3554653aae0f5cfec0c626f29bf75a.tar.bz2
upstream-121b27fb2b3554653aae0f5cfec0c626f29bf75a.zip
mac80211: significantly reduce the cpu load caused by excessive skb header cloning
SVN-Revision: 24669
-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,