|
@@ -196,6 +196,11 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max_low,
|
|
|
#ifdef CONFIG_HAVE_ARCH_PFN_VALID
|
|
#ifdef CONFIG_HAVE_ARCH_PFN_VALID
|
|
|
int pfn_valid(unsigned long pfn)
|
|
int pfn_valid(unsigned long pfn)
|
|
|
{
|
|
{
|
|
|
|
|
+ phys_addr_t addr = __pfn_to_phys(pfn);
|
|
|
|
|
+
|
|
|
|
|
+ if (__phys_to_pfn(addr) != pfn)
|
|
|
|
|
+ return 0;
|
|
|
|
|
+
|
|
|
return memblock_is_map_memory(__pfn_to_phys(pfn));
|
|
return memblock_is_map_memory(__pfn_to_phys(pfn));
|
|
|
}
|
|
}
|
|
|
EXPORT_SYMBOL(pfn_valid);
|
|
EXPORT_SYMBOL(pfn_valid);
|