On Sat, Aug 17, 2019 at 11:00:13AM +0800, Zhaoyang Huang wrote: > From: Zhaoyang Huang <zhaoyang.hu...@unisoc.com> > > pfn_valid can be wrong while the MSB of physical address be trimed as pfn > larger than the max_pfn.
What scenario are you addressing here? At a guess, you're addressing the non-LPAE case with PFNs that correspond with >= 4GiB of memory? > > Signed-off-by: Zhaoyang Huang <huangzhaoy...@gmail.com> > --- > arch/arm/mm/init.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c > index c2daabb..9c4d938 100644 > --- a/arch/arm/mm/init.c > +++ b/arch/arm/mm/init.c > @@ -177,7 +177,8 @@ static void __init zone_sizes_init(unsigned long min, > unsigned long max_low, > #ifdef CONFIG_HAVE_ARCH_PFN_VALID > int pfn_valid(unsigned long pfn) > { > - return memblock_is_map_memory(__pfn_to_phys(pfn)); > + return (pfn > max_pfn) ? > + false : memblock_is_map_memory(__pfn_to_phys(pfn)); > } > EXPORT_SYMBOL(pfn_valid); > #endif > -- > 1.9.1 > > -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up According to speedtest.net: 11.9Mbps down 500kbps up