diff --git a/package/mac80211/patches/500-ath_use_gfp_dma.patch b/package/mac80211/patches/500-ath_use_gfp_dma.patch
deleted file mode 100644
index 9390a2faaade16f63cc2483f1535dcbee58c68ba..0000000000000000000000000000000000000000
--- a/package/mac80211/patches/500-ath_use_gfp_dma.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/drivers/net/wireless/ath/main.c
-+++ b/drivers/net/wireless/ath/main.c
-@@ -31,6 +31,14 @@ struct sk_buff *ath_rxbuf_alloc(struct a
- 	u32 off;
- 
- 	/*
-+	 * Enable GFP_DMA in order to avoid using DMA bounce buffers
-+	 * on IXP4xx devices with more than 64M RAM
-+	 */
-+#ifdef CONFIG_ARCH_IXP4XX
-+	gfp_mask |= GFP_DMA;
-+#endif
-+
-+	/*
- 	 * Cache-line-align.  This is important (for the
- 	 * 5210 at least) as not doing so causes bogus data
- 	 * in rx'd frames.
diff --git a/target/linux/ixp4xx/patches-2.6.30/600-dma_performance.patch b/target/linux/ixp4xx/patches-2.6.30/600-dma_performance.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5aac26ee80f743f02c61400def9da2d3eac5b195
--- /dev/null
+++ b/target/linux/ixp4xx/patches-2.6.30/600-dma_performance.patch
@@ -0,0 +1,13 @@
+--- a/net/core/skbuff.c
++++ b/net/core/skbuff.c
+@@ -260,6 +260,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);