Messages in this thread Patch in this message | | | From | Wei Yang <> | Subject | [PATCH] x86/mm: calculate the proper boundary in register_page_bootmem_memmap() | Date | Tue, 30 Jun 2020 11:22:04 +0800 |
| |
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 <richard.weiyang@linux.alibaba.com> CC: Baoquan He <bhe@redhat.com> CC: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> --- 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)
| |