--- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -184,6 +184,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);