On Mon, Oct 26, 2020 at 12:54:01AM +0000, Edgecombe, Rick P wrote: > On Sun, 2020-10-25 at 12:15 +0200, Mike Rapoport wrote: > > index 7f248fc45317..16f878c26667 100644 > > --- a/arch/x86/mm/pat/set_memory.c > > +++ b/arch/x86/mm/pat/set_memory.c > > @@ -2228,7 +2228,6 @@ void __kernel_map_pages(struct page *page, int > > numpages, int enable) > > } > > #endif /* CONFIG_DEBUG_PAGEALLOC */ > > > > -#ifdef CONFIG_HIBERNATION > > bool kernel_page_present(struct page *page) > > { > > unsigned int level; > > @@ -2240,7 +2239,6 @@ bool kernel_page_present(struct page *page) > > pte = lookup_address((unsigned long)page_address(page), > > &level); > > return (pte_val(*pte) & _PAGE_PRESENT); > > } > > -#endif /* CONFIG_HIBERNATION */ > > This is only used by hibernate today right? Makes sense that it should > return a correct answer if someone starts to use it without looking too > closely at the header. But could we just remove the default static > inline return true implementation and let the linker fail if someone > starts to use it outside hibernate? Then we could leave it compiled out > until then. Hmm, I'm not sure I follow you here. We'd need some stub for architectures that have ARCH_HIBERNATION_POSSIBLE and do not have CONFIG_ARCH_HAS_SET_DIRECT_MAP. I don't see how the kernel would compile for ppc or sparc with hibernation enabled if I remove the default implementation. > Also it looks like riscv does not have ARCH_HIBERNATION_POSSIBLE so the > new function added here couldn't be used yet. You could also just let > the linker catch it if riscv ever enables hibernate? -- Sincerely yours, Mike.