From: Benjamin Herrenschmidt Date: Wed, 4 Aug 2010 03:23:02 +0000 (+1000) Subject: memblock/arm: pfn_valid uses memblock_is_memory() X-Git-Tag: upstream/snapshot3+hdmi~12725^2~72 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5e6f6aa1c243fafeb2648cf4ebd5abd99ab2531b;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git memblock/arm: pfn_valid uses memblock_is_memory() The implementation is pretty much similar. There is a -small- added overhead by having another function call and the address shift. If that becomes a concern, I suppose we could actually have memblock itself expose a memblock_pfn_valid() which then ARM can use directly with an appropriate #define... Signed-off-by: Benjamin Herrenschmidt --- diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index d1496e6..e739223 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -237,20 +237,7 @@ static void __init arm_bootmem_free(struct meminfo *mi, unsigned long min, #ifndef CONFIG_SPARSEMEM int pfn_valid(unsigned long pfn) { - struct memblock_type *mem = &memblock.memory; - unsigned int left = 0, right = mem->cnt; - - do { - unsigned int mid = (right + left) / 2; - - if (pfn < memblock_start_pfn(mem, mid)) - right = mid; - else if (pfn >= memblock_end_pfn(mem, mid)) - left = mid + 1; - else - return 1; - } while (left < right); - return 0; + return memblock_is_memory(pfn << PAGE_SHIFT); } EXPORT_SYMBOL(pfn_valid);