mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ARM: 7172/1: dma: Drop GFP_COMP for DMA memory allocations
dma_alloc_coherent wants to split pages after allocation in order to
reduce the memory footprint. This does not work well with GFP_COMP
pages, so drop this flag before allocation.
This patch is ported from arch/avr32
(commit 3611553ef9).
[swarren: s/HUGETLB_PAGE/HUGETLBFS/ in comment, minor comment cleanup]
Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
			
			
This commit is contained in:
		
							parent
							
								
									c36ef4b176
								
							
						
					
					
						commit
						ea2e7057c0
					
				
					 1 changed files with 9 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -332,6 +332,15 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,
 | 
			
		|||
	struct page *page;
 | 
			
		||||
	void *addr;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Following is a work-around (a.k.a. hack) to prevent pages
 | 
			
		||||
	 * with __GFP_COMP being passed to split_page() which cannot
 | 
			
		||||
	 * handle them.  The real problem is that this flag probably
 | 
			
		||||
	 * should be 0 on ARM as it is not supported on this
 | 
			
		||||
	 * platform; see CONFIG_HUGETLBFS.
 | 
			
		||||
	 */
 | 
			
		||||
	gfp &= ~(__GFP_COMP);
 | 
			
		||||
 | 
			
		||||
	*handle = ~0;
 | 
			
		||||
	size = PAGE_ALIGN(size);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue