Message ID | 20190212025632.28946-17-peterx@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | userfaultfd: write protection support | expand |
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@redhat.com> Reviewed-by: Jérôme Glisse <jglisse@redhat.com> > --- > 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 >
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@redhat.com> Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> > --- > 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 >
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 */
Adding these missing helpers for uffd-wp operations with pmd swap/migration entries. Signed-off-by: Peter Xu <peterx@redhat.com> --- arch/x86/include/asm/pgtable.h | 15 +++++++++++++++ include/asm-generic/pgtable_uffd.h | 15 +++++++++++++++ 2 files changed, 30 insertions(+)