diff --git a/target/linux/ixp4xx/patches-2.6.33/600-skb_avoid_dmabounce.patch b/target/linux/ixp4xx/patches-2.6.33/600-skb_avoid_dmabounce.patch new file mode 100644 index 000000000..026c717c7 --- /dev/null +++ b/target/linux/ixp4xx/patches-2.6.33/600-skb_avoid_dmabounce.patch @@ -0,0 +1,13 @@ +--- a/net/core/skbuff.c ++++ b/net/core/skbuff.c +@@ -264,6 +264,10 @@ struct sk_buff *__alloc_skb(unsigned int + if (!skb) + goto out; + ++#ifdef CONFIG_ARCH_IXP4XX ++ gfp_mask |= GFP_DMA; ++#endif ++ + size = SKB_DATA_ALIGN(size); + data = kmalloc_node_track_caller(size + sizeof(struct skb_shared_info), + gfp_mask, node); diff --git a/target/linux/ixp4xx/patches-2.6.35/600-skb_avoid_dmabounce.patch b/target/linux/ixp4xx/patches-2.6.35/600-skb_avoid_dmabounce.patch new file mode 100644 index 000000000..5b0e3fdb8 --- /dev/null +++ b/target/linux/ixp4xx/patches-2.6.35/600-skb_avoid_dmabounce.patch @@ -0,0 +1,13 @@ +--- a/net/core/skbuff.c ++++ b/net/core/skbuff.c +@@ -183,6 +183,10 @@ struct sk_buff *__alloc_skb(unsigned int + goto out; + prefetchw(skb); + ++#ifdef CONFIG_ARCH_IXP4XX ++ gfp_mask |= GFP_DMA; ++#endif ++ + size = SKB_DATA_ALIGN(size); + data = kmalloc_node_track_caller(size + sizeof(struct skb_shared_info), + gfp_mask, node);