aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ixp4xx/patches-3.3/600-skb_avoid_dmabounce.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ixp4xx/patches-3.3/600-skb_avoid_dmabounce.patch')
-rw-r--r--target/linux/ixp4xx/patches-3.3/600-skb_avoid_dmabounce.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/target/linux/ixp4xx/patches-3.3/600-skb_avoid_dmabounce.patch b/target/linux/ixp4xx/patches-3.3/600-skb_avoid_dmabounce.patch
new file mode 100644
index 000000000..625b76897
--- /dev/null
+++ b/target/linux/ixp4xx/patches-3.3/600-skb_avoid_dmabounce.patch
@@ -0,0 +1,24 @@
+--- a/net/core/skbuff.c
++++ b/net/core/skbuff.c
+@@ -177,6 +177,10 @@ struct sk_buff *__alloc_skb(unsigned int
+ struct sk_buff *skb;
+ u8 *data;
+
++#ifdef CONFIG_ARCH_IXP4XX
++ gfp_mask |= GFP_DMA;
++#endif
++
+ cache = fclone ? skbuff_fclone_cache : skbuff_head_cache;
+
+ /* Get the HEAD */
+@@ -946,6 +950,10 @@ int pskb_expand_head(struct sk_buff *skb
+ if (skb_shared(skb))
+ BUG();
+
++#ifdef CONFIG_ARCH_IXP4XX
++ gfp_mask |= GFP_DMA;
++#endif
++
+ size = SKB_DATA_ALIGN(size);
+
+ /* Check if we can avoid taking references on fragments if we own