summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-11-24 13:55:37 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-11-24 13:55:37 +0000
commit5a99d27cc6b54b9a24133ee16ede65eeece37e0d (patch)
treed57a16b17444a824fa9212bc3e62c7ecfb75bf5c
parentc312c2ca40a27ce95431bb88cacece5978070c77 (diff)
ath: only use GFP_DMA on ixp4xx
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18525 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/mac80211/patches/510-ath_use_gfp_dma.patch24
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.