dev_set_cma_area incorrectly assigned cma to global area on first call due to incorrect check. This patch fixes this issue. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			526 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			526 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef ASM_DMA_CONTIGUOUS_H
 | 
						|
#define ASM_DMA_CONTIGUOUS_H
 | 
						|
 | 
						|
#ifdef __KERNEL__
 | 
						|
#ifdef CONFIG_CMA
 | 
						|
 | 
						|
#include <linux/device.h>
 | 
						|
#include <linux/dma-contiguous.h>
 | 
						|
 | 
						|
static inline struct cma *dev_get_cma_area(struct device *dev)
 | 
						|
{
 | 
						|
	if (dev && dev->cma_area)
 | 
						|
		return dev->cma_area;
 | 
						|
	return dma_contiguous_default_area;
 | 
						|
}
 | 
						|
 | 
						|
static inline void dev_set_cma_area(struct device *dev, struct cma *cma)
 | 
						|
{
 | 
						|
	if (dev)
 | 
						|
		dev->cma_area = cma;
 | 
						|
	if (!dev && !dma_contiguous_default_area)
 | 
						|
		dma_contiguous_default_area = cma;
 | 
						|
}
 | 
						|
 | 
						|
#endif
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |