On Wed, Aug 07, 2024 at 10:13:04PM GMT, Pedro Falcato wrote: > Move can_modify_vma to internal.h so it can be inlined properly (with > the intent to remove can_modify_mm callsites). This is kind of petty, but it'd be nice to move this to mm/vma.h instead as it's a vma-specific thing. This also makes it testable under vma userland tests. > > Signed-off-by: Pedro Falcato <pedro.falcato@xxxxxxxxx> > --- > mm/internal.h | 24 ++++++++++++++++++++++++ > mm/mseal.c | 17 ----------------- > 2 files changed, 24 insertions(+), 17 deletions(-) > > diff --git a/mm/internal.h b/mm/internal.h > index 52f7fc4e8ac..90f50f3c4cf 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -1353,6 +1353,24 @@ static inline int can_do_mseal(unsigned long flags) > return 0; > } > > +static inline bool vma_is_sealed(struct vm_area_struct *vma) > +{ > + return (vma->vm_flags & VM_SEALED); > +} > + > +/* > + * check if a vma is sealed for modification. > + * return true, if modification is allowed. > + */ > +static inline bool can_modify_vma(struct vm_area_struct *vma) > +{ > + if (unlikely(vma_is_sealed(vma))) > + return false; > + > + return true; > +} > + > + > bool can_modify_mm(struct mm_struct *mm, unsigned long start, > unsigned long end); > bool can_modify_mm_madv(struct mm_struct *mm, unsigned long start, > @@ -1374,6 +1392,12 @@ static inline bool can_modify_mm_madv(struct mm_struct *mm, unsigned long start, > { > return true; > } > + > +static inline bool can_modify_vma(struct vm_area_struct *vma) > +{ > + return true; > +} > + > #endif > > #ifdef CONFIG_SHRINKER_DEBUG > diff --git a/mm/mseal.c b/mm/mseal.c > index bf783bba8ed..4591ae8d29c 100644 > --- a/mm/mseal.c > +++ b/mm/mseal.c > @@ -16,28 +16,11 @@ > #include <linux/sched.h> > #include "internal.h" > > -static inline bool vma_is_sealed(struct vm_area_struct *vma) > -{ > - return (vma->vm_flags & VM_SEALED); > -} > - > static inline void set_vma_sealed(struct vm_area_struct *vma) > { > vm_flags_set(vma, VM_SEALED); > } > > -/* > - * check if a vma is sealed for modification. > - * return true, if modification is allowed. > - */ > -static bool can_modify_vma(struct vm_area_struct *vma) > -{ > - if (unlikely(vma_is_sealed(vma))) > - return false; > - > - return true; > -} > - > static bool is_madv_discard(int behavior) > { > return behavior & > -- > 2.46.0 >