On Tue, Feb 12, 2019 at 10:56:22AM +0800, Peter Xu wrote: > Adding these missing helpers for uffd-wp operations with pmd > swap/migration entries. > > Signed-off-by: Peter Xu <peterx@xxxxxxxxxx> Reviewed-by: Jérôme Glisse <jglisse@xxxxxxxxxx> > --- > arch/x86/include/asm/pgtable.h | 15 +++++++++++++++ > include/asm-generic/pgtable_uffd.h | 15 +++++++++++++++ > 2 files changed, 30 insertions(+) > > diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h > index 6863236e8484..18a815d6f4ea 100644 > --- a/arch/x86/include/asm/pgtable.h > +++ b/arch/x86/include/asm/pgtable.h > @@ -1401,6 +1401,21 @@ static inline pte_t pte_swp_clear_uffd_wp(pte_t pte) > { > return pte_clear_flags(pte, _PAGE_SWP_UFFD_WP); > } > + > +static inline pmd_t pmd_swp_mkuffd_wp(pmd_t pmd) > +{ > + return pmd_set_flags(pmd, _PAGE_SWP_UFFD_WP); > +} > + > +static inline int pmd_swp_uffd_wp(pmd_t pmd) > +{ > + return pmd_flags(pmd) & _PAGE_SWP_UFFD_WP; > +} > + > +static inline pmd_t pmd_swp_clear_uffd_wp(pmd_t pmd) > +{ > + return pmd_clear_flags(pmd, _PAGE_SWP_UFFD_WP); > +} > #endif /* CONFIG_HAVE_ARCH_USERFAULTFD_WP */ > > #define PKRU_AD_BIT 0x1 > diff --git a/include/asm-generic/pgtable_uffd.h b/include/asm-generic/pgtable_uffd.h > index 643d1bf559c2..828966d4c281 100644 > --- a/include/asm-generic/pgtable_uffd.h > +++ b/include/asm-generic/pgtable_uffd.h > @@ -46,6 +46,21 @@ static __always_inline pte_t pte_swp_clear_uffd_wp(pte_t pte) > { > return pte; > } > + > +static inline pmd_t pmd_swp_mkuffd_wp(pmd_t pmd) > +{ > + return pmd; > +} > + > +static inline int pmd_swp_uffd_wp(pmd_t pmd) > +{ > + return 0; > +} > + > +static inline pmd_t pmd_swp_clear_uffd_wp(pmd_t pmd) > +{ > + return pmd; > +} > #endif /* CONFIG_HAVE_ARCH_USERFAULTFD_WP */ > > #endif /* _ASM_GENERIC_PGTABLE_UFFD_H */ > -- > 2.17.1 >