From: Anshuman Khandual <anshuman.khandual@xxxxxxx> Subject: x86/mm: define mm_p4d_folded() Patch series "mm/debug: Add tests validating architecture page table helpers", v18. This adds a test validation for architecture exported page table helpers. Patch adds basic transformation tests at various levels of the page table. This test was originally suggested by Catalin during arm64 THP migration RFC discussion earlier. Going forward it can include more specific tests with respect to various generic MM functions like THP, HugeTLB etc and platform specific tests. https://lore.kernel.org/linux-mm/20190628102003.GA56463@xxxxxxxxxxxxxxxxxxxx/ This patch (of 2): This just defines mm_p4d_folded() to check whether P4D page table level is folded at runtime. Link: http://lkml.kernel.org/r/1587436495-22033-2-git-send-email-anshuman.khandual@xxxxxxx Link: http://lkml.kernel.org/r/1588564865-31160-2-git-send-email-anshuman.khandual@xxxxxxx Signed-off-by: Kirill A. Shutemov <kirill@xxxxxxxxxxxxx> Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/x86/include/asm/pgtable_64.h | 6 ++++++ 1 file changed, 6 insertions(+) --- a/arch/x86/include/asm/pgtable_64.h~x86-mm-define-mm_p4d_folded +++ a/arch/x86/include/asm/pgtable_64.h @@ -53,6 +53,12 @@ static inline void sync_initial_page_tab struct mm_struct; +#define mm_p4d_folded mm_p4d_folded +static inline bool mm_p4d_folded(struct mm_struct *mm) +{ + return !pgtable_l5_enabled(); +} + void set_pte_vaddr_p4d(p4d_t *p4d_page, unsigned long vaddr, pte_t new_pte); void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte); _