Loading arch/arm64/mm/mmu.c +1 −17 Original line number Diff line number Diff line Loading @@ -704,27 +704,11 @@ void __init paging_init(void) */ void hotplug_paging(phys_addr_t start, phys_addr_t size) { struct page *pg; phys_addr_t pgd_phys = pgd_pgtable_alloc(); pgd_t *pgd = pgd_set_fixmap(pgd_phys); int flags; memcpy(pgd, swapper_pg_dir, PAGE_SIZE); flags = debug_pagealloc_enabled() ? NO_BLOCK_MAPPINGS : 0; __create_pgd_mapping(pgd, start, __phys_to_virt(start), size, __create_pgd_mapping(swapper_pg_dir, start, __phys_to_virt(start), size, PAGE_KERNEL, pgd_pgtable_alloc, flags); cpu_replace_ttbr1(__va(pgd_phys)); memcpy(swapper_pg_dir, pgd, PAGE_SIZE); cpu_replace_ttbr1(swapper_pg_dir); pgd_clear_fixmap(); pg = phys_to_page(pgd_phys); pgtable_page_dtor(pg); __free_pages(pg, 0); } #ifdef CONFIG_MEMORY_HOTREMOVE Loading mm/page_alloc.c +1 −0 Original line number Diff line number Diff line Loading @@ -8087,6 +8087,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) zone->free_area[order].nr_free--; for (i = 0; i < (1 << order); i++) SetPageReserved((page+i)); post_alloc_hook(page, order, GFP_KERNEL); pfn += (1 << order); } spin_unlock_irqrestore(&zone->lock, flags); Loading Loading
arch/arm64/mm/mmu.c +1 −17 Original line number Diff line number Diff line Loading @@ -704,27 +704,11 @@ void __init paging_init(void) */ void hotplug_paging(phys_addr_t start, phys_addr_t size) { struct page *pg; phys_addr_t pgd_phys = pgd_pgtable_alloc(); pgd_t *pgd = pgd_set_fixmap(pgd_phys); int flags; memcpy(pgd, swapper_pg_dir, PAGE_SIZE); flags = debug_pagealloc_enabled() ? NO_BLOCK_MAPPINGS : 0; __create_pgd_mapping(pgd, start, __phys_to_virt(start), size, __create_pgd_mapping(swapper_pg_dir, start, __phys_to_virt(start), size, PAGE_KERNEL, pgd_pgtable_alloc, flags); cpu_replace_ttbr1(__va(pgd_phys)); memcpy(swapper_pg_dir, pgd, PAGE_SIZE); cpu_replace_ttbr1(swapper_pg_dir); pgd_clear_fixmap(); pg = phys_to_page(pgd_phys); pgtable_page_dtor(pg); __free_pages(pg, 0); } #ifdef CONFIG_MEMORY_HOTREMOVE Loading
mm/page_alloc.c +1 −0 Original line number Diff line number Diff line Loading @@ -8087,6 +8087,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) zone->free_area[order].nr_free--; for (i = 0; i < (1 << order); i++) SetPageReserved((page+i)); post_alloc_hook(page, order, GFP_KERNEL); pfn += (1 << order); } spin_unlock_irqrestore(&zone->lock, flags); Loading