Skip to content
Snippets Groups Projects
Commit e5e3624f authored by Felix Fietkau's avatar Felix Fietkau
Browse files

ixp4xx: allocate all skbs using GFP_DMA this ensures that dma bounce buffers...

ixp4xx: allocate all skbs using GFP_DMA this ensures that dma bounce buffers will not be used frequently when bridging or routing frames between ethernet and wifi. significantly improves ath9k performance and obsoletes an ath specific patch

SVN-Revision: 19051
parent 8ec79b46
No related branches found
No related tags found
No related merge requests found
--- 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.
--- 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);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment