[PATCH 1/2] mm/ARM: dma: fix conflicting types for 'arm_dma_zone_size'

Russell King - ARM Linux linux at arm.linux.org.uk
Tue Dec 10 16:25:23 EST 2013


On Tue, Dec 10, 2013 at 02:29:57PM -0500, Santosh Shilimkar wrote:
> diff --git a/arch/arm/include/asm/dma.h b/arch/arm/include/asm/dma.h
> index 58b8c6a..1439b80 100644
> --- a/arch/arm/include/asm/dma.h
> +++ b/arch/arm/include/asm/dma.h
> @@ -8,7 +8,7 @@
>  #define MAX_DMA_ADDRESS	0xffffffffUL
>  #else
>  #define MAX_DMA_ADDRESS	({ \
> -	extern unsigned long arm_dma_zone_size; \
> +	extern phys_addr_t arm_dma_zone_size; \
>  	arm_dma_zone_size ? \
>  		(PAGE_OFFSET + arm_dma_zone_size) : 0xffffffffUL; })

This is wrong.  Take a moment to look at it more closely.  What does
"PAGE_OFFSET" tell you about what its returning?

What happens if arm_dma_zone_size is greater than 1GB when PAGE_OFFSET
is at the default setting of 3GB?



More information about the linux-arm-kernel mailing list