ARM: 7067/1: mm: keep significant bits in pfn_valid
authorMark Rutland <mark.rutland@arm.com>
Tue, 30 Aug 2011 16:45:10 +0000 (17:45 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 4 Sep 2011 09:50:03 +0000 (10:50 +0100)
commitfb492c9160f3d40d09456a79cc669fba74d7d9cc
treeddccd8f32734a46e84ee08a4b905c9855a95582f
parent9e79e3e9dd9672b37ac9412e9a926714306551fe
ARM: 7067/1: mm: keep significant bits in pfn_valid

When ARCH_HAS_HOLES_MEMORYMODEL is selected, pfn_valid calls
memblock_is_memory to test validity of a pfn:

> memblock_is_memory(pfn << PAGE_SHIFT);

On LPAE systems this cuts off the top bits, as the shift occurs before
the value is promoted to a phys_addr_t.

This patch replaces the shift with a call to __pfn_to_phys (which casts
pfn to phys_addr_t before shifting), preventing the loss of significant
bits.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/init.c