On Sun, 2020-10-25 at 12:15 +0200, Mike Rapoport wrote: > + if (IS_ENABLED(CONFIG_ARCH_HAS_SET_DIRECT_MAP)) { > + unsigned long addr = (unsigned > long)page_address(page); > + int ret; > + > + if (enable) > + ret = set_direct_map_default_noflush(page); > + else > + ret = set_direct_map_invalid_noflush(page); > + > + if (WARN_ON(ret)) > + return; > + > + flush_tlb_kernel_range(addr, addr + PAGE_SIZE); > + } else { > + debug_pagealloc_map_pages(page, 1, enable); > + } Looking at the arm side again, I think this might actually introduce a regression for the arm/hibernate/DEBUG_PAGEALLOC combo. Unlike __kernel_map_pages(), it looks like arm's cpa will always bail in the set_direct_map_() functions if rodata_full is false. So if rodata_full was disabled but debug page alloc is on, then this would now skip remapping the pages. I guess the significance depends on whether hibernate could actually try to save any DEBUG_PAGEALLOC unmapped pages. Looks like it to me though.