diff options
| -rw-r--r-- | package/mac80211/patches/510-ath_use_gfp_dma.patch | 24 | 
1 files changed, 15 insertions, 9 deletions
| diff --git a/package/mac80211/patches/510-ath_use_gfp_dma.patch b/package/mac80211/patches/510-ath_use_gfp_dma.patch index af375b151..9390a2faa 100644 --- a/package/mac80211/patches/510-ath_use_gfp_dma.patch +++ b/package/mac80211/patches/510-ath_use_gfp_dma.patch @@ -1,11 +1,17 @@  --- a/drivers/net/wireless/ath/main.c  +++ b/drivers/net/wireless/ath/main.c -@@ -43,7 +43,7 @@ struct sk_buff *ath_rxbuf_alloc(struct a - 	 * Unfortunately this means we may get 8 KB here from the - 	 * kernel... and that is actually what is observed on some - 	 * systems :( */ --	skb = __dev_alloc_skb(len + common->cachelsz - 1, gfp_mask); -+	skb = __dev_alloc_skb(len + common->cachelsz - 1, gfp_mask | GFP_DMA); - 	if (skb != NULL) { - 		off = ((unsigned long) skb->data) % common->cachelsz; - 		if (off != 0) +@@ -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. | 
