Browse Source

ath: only use GFP_DMA on ixp4xx

SVN-Revision: 18525
Felix Fietkau 16 years ago
parent
commit
cafe76e103
1 changed files with 15 additions and 9 deletions
  1. 15 9
      package/mac80211/patches/510-ath_use_gfp_dma.patch

+ 15 - 9
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.