• Li Zhong's avatar
    powerpc: start loop at section start of start in vmemmap_populated() · 16a05bff
    Li Zhong authored
    vmemmap_populated() checks whether the [start, start + page_size) has valid
    pfn numbers, to know whether a vmemmap mapping has been created that includes
    this range.
    
    Some range before end might not be checked by this loop:
      sec11start......start11..sec11end/sec12start..end....start12..sec12end
    as the above, for start11(section 11), it checks [sec11start, sec11end), and
    loop ends as the next start(start12) is bigger than end. However,
    [sec11end/sec12start, end) is not checked here.
    
    So before the loop, adjust the start to be the start of the section, so we don't miss ranges like the above.
    
    After we adjust start to be the start of the section, it also means it's
    aligned with vmemmap as of the sizeof struct page, so we could use
    page_to_pfn directly in the loop.
    Signed-off-by: default avatarLi Zhong <zhong@linux.vnet.ibm.com>
    Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com>
    Acked-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    16a05bff
init_64.c 12.6 KB