From: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx> Special PMD is similar to special PTE: it requires special handling. Currently, it's needed to mark PMD with all PTEs set to zero page. If an arch wants to provide support of special PMD it need to select HAVE_PMD_SPECIAL config option and implement pmd_special() and pmd_mkspecial(). Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> --- arch/Kconfig | 6 ++++++ include/asm-generic/pgtable.h | 12 ++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig index 72f2fa1..a74ba25 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -281,4 +281,10 @@ config SECCOMP_FILTER See Documentation/prctl/seccomp_filter.txt for details. +config HAVE_PMD_SPECIAL + bool + help + An arch should select this symbol if it provides pmd_special() + and pmd_mkspecial(). + source "kernel/gcov/Kconfig" diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index ff4947b..393f3f0 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h @@ -59,6 +59,18 @@ static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ #endif +#ifndef CONFIG_HAVE_PMD_SPECIAL +static inline int pmd_special(pmd_t pmd) +{ + return 0; +} + +static inline pmd_t pmd_mkspecial(pmd_t pmd) +{ + return pmd; +} +#endif + #ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH int ptep_clear_flush_young(struct vm_area_struct *vma, unsigned long address, pte_t *ptep); -- 1.7.7.6 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>