[PATCHv2 2/2] arm64: Correct virt_addr_valid

Catalin Marinas catalin.marinas at arm.com
Tue Dec 17 07:00:27 EST 2013


On Mon, Dec 16, 2013 at 07:01:45PM +0000, Laura Abbott wrote:
> diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
> index 3776217..b8ec776 100644
> --- a/arch/arm64/include/asm/memory.h
> +++ b/arch/arm64/include/asm/memory.h
> @@ -146,8 +146,9 @@ static inline void *phys_to_virt(phys_addr_t x)
>  #define ARCH_PFN_OFFSET		PHYS_PFN_OFFSET
>  
>  #define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
> -#define	virt_addr_valid(kaddr)	(((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
> -				 ((void *)(kaddr) < (void *)high_memory))
> +#define virt_addr_valid(kaddr)	(pfn_valid(__pa(kaddr) >> PAGE_SHIFT) && \
> +	((unsigned long)(kaddr) >= PAGE_OFFSET && (unsigned long)(kaddr) < (unsigned long)high_memory))
> +

I still think the original patch was fine for arm64, no need for
additional checks since we don't have highmem and __pa() is always
linear.

-- 
Catalin



More information about the linux-arm-kernel mailing list