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
This commit is contained in:
		@@ -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.
 | 
					 | 
				
			||||||
							
								
								
									
										13
									
								
								target/linux/ixp4xx/patches-2.6.30/600-dma_performance.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								target/linux/ixp4xx/patches-2.6.30/600-dma_performance.patch
									
									
									
									
									
										Normal file
									
								
							@@ -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);
 | 
				
			||||||
		Reference in New Issue
	
	Block a user