diff options
Diffstat (limited to 'target/linux/ixp4xx/patches-4.1/600-skb_avoid_dmabounce.patch')
-rw-r--r-- | target/linux/ixp4xx/patches-4.1/600-skb_avoid_dmabounce.patch | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/target/linux/ixp4xx/patches-4.1/600-skb_avoid_dmabounce.patch b/target/linux/ixp4xx/patches-4.1/600-skb_avoid_dmabounce.patch new file mode 100644 index 0000000..5d6809d --- /dev/null +++ b/target/linux/ixp4xx/patches-4.1/600-skb_avoid_dmabounce.patch @@ -0,0 +1,23 @@ +--- a/net/core/skbuff.c ++++ b/net/core/skbuff.c +@@ -212,6 +212,9 @@ struct sk_buff *__alloc_skb(unsigned int + + if (sk_memalloc_socks() && (flags & SKB_ALLOC_RX)) + gfp_mask |= __GFP_MEMALLOC; ++#ifdef CONFIG_ARCH_IXP4XX ++ gfp_mask |= GFP_DMA; ++#endif + + /* Get the HEAD */ + skb = kmem_cache_alloc_node(cache, gfp_mask & ~__GFP_DMA, node); +@@ -1192,6 +1195,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); + + if (skb_pfmemalloc(skb)) |