It would be proper to jump to end boundary of the proper level instead
of always jump to the end boundary of a PAGE.

Signed-off-by: Wei Yang <[email protected]>
CC: Baoquan He <[email protected]>
CC: Kirill A. Shutemov <[email protected]>
---
 arch/x86/mm/init_64.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index f902fbd17f27..45eddb755eaa 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -1536,21 +1536,21 @@ void register_page_bootmem_memmap(unsigned long 
section_nr,
 
                pgd = pgd_offset_k(addr);
                if (pgd_none(*pgd)) {
-                       next = (addr + PAGE_SIZE) & PAGE_MASK;
+                       next = pgd_addr_end(addr, end);
                        continue;
                }
                get_page_bootmem(section_nr, pgd_page(*pgd), MIX_SECTION_INFO);
 
                p4d = p4d_offset(pgd, addr);
                if (p4d_none(*p4d)) {
-                       next = (addr + PAGE_SIZE) & PAGE_MASK;
+                       next = p4d_addr_end(addr, end);
                        continue;
                }
                get_page_bootmem(section_nr, p4d_page(*p4d), MIX_SECTION_INFO);
 
                pud = pud_offset(p4d, addr);
                if (pud_none(*pud)) {
-                       next = (addr + PAGE_SIZE) & PAGE_MASK;
+                       next = pud_addr_end(addr, end);
                        continue;
                }
                get_page_bootmem(section_nr, pud_page(*pud), MIX_SECTION_INFO);
-- 
2.20.1 (Apple Git-117)

Reply via email to