Drop the wholly unnecessary set_vma_sealed() and vma_is_sealed() helpers
which are used only once, and place VMA_ITERATOR() declarations in the
correct place.
No functional change intended.
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
---
mm/mseal.c | 9 +--------
mm/vma.h | 16 ++--------------
2 files changed, 3 insertions(+), 22 deletions(-)
diff --git a/mm/mseal.c b/mm/mseal.c
index 1308e88ab184..adbcc65e9660 100644
--- a/mm/mseal.c
+++ b/mm/mseal.c
@@ -15,11 +15,6 @@
#include <linux/sched.h>
#include "internal.h"
-static inline void set_vma_sealed(struct vm_area_struct *vma)
-{
- vm_flags_set(vma, VM_SEALED);
-}
-
static int mseal_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma,
struct vm_area_struct **prev, unsigned long start,
unsigned long end, vm_flags_t newflags)
@@ -36,7 +31,7 @@ static int mseal_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma,
goto out;
}
- set_vma_sealed(vma);
+ vm_flags_set(vma, VM_SEALED);
out:
*prev = vma;
return ret;
@@ -53,7 +48,6 @@ static int check_mm_seal(unsigned long start, unsigned long end)
{
struct vm_area_struct *vma;
unsigned long nstart = start;
-
VMA_ITERATOR(vmi, current->mm, start);
/* going through each vma to check. */
@@ -78,7 +72,6 @@ static int apply_mm_seal(unsigned long start, unsigned long end)
{
unsigned long nstart;
struct vm_area_struct *vma, *prev;
-
VMA_ITERATOR(vmi, current->mm, start);
vma = vma_iter_load(&vmi);
diff --git a/mm/vma.h b/mm/vma.h
index 6515045ba342..d17f560cf53d 100644
--- a/mm/vma.h
+++ b/mm/vma.h
@@ -560,31 +560,19 @@ struct vm_area_struct *vma_iter_next_rewind(struct vma_iterator *vmi,
}
#ifdef CONFIG_64BIT
-
-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.
- */
+/* Check if a vma is sealed for modification. */
static inline bool can_modify_vma(struct vm_area_struct *vma)
{
- if (unlikely(vma_is_sealed(vma)))
+ if (unlikely(vma->vm_flags & VM_SEALED))
return false;
return true;
}
-
#else
-
static inline bool can_modify_vma(struct vm_area_struct *vma)
{
return true;
}
-
#endif
#if defined(CONFIG_STACK_GROWSUP)
--
2.50.1
* Lorenzo Stoakes <lorenzo.stoakes@oracle.com> [250714 09:08]:
> Drop the wholly unnecessary set_vma_sealed() and vma_is_sealed() helpers
> which are used only once, and place VMA_ITERATOR() declarations in the
> correct place.
>
> No functional change intended.
>
> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com>
> ---
> mm/mseal.c | 9 +--------
> mm/vma.h | 16 ++--------------
> 2 files changed, 3 insertions(+), 22 deletions(-)
>
> diff --git a/mm/mseal.c b/mm/mseal.c
> index 1308e88ab184..adbcc65e9660 100644
> --- a/mm/mseal.c
> +++ b/mm/mseal.c
> @@ -15,11 +15,6 @@
> #include <linux/sched.h>
> #include "internal.h"
>
> -static inline void set_vma_sealed(struct vm_area_struct *vma)
> -{
> - vm_flags_set(vma, VM_SEALED);
> -}
> -
> static int mseal_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma,
> struct vm_area_struct **prev, unsigned long start,
> unsigned long end, vm_flags_t newflags)
> @@ -36,7 +31,7 @@ static int mseal_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma,
> goto out;
> }
>
> - set_vma_sealed(vma);
> + vm_flags_set(vma, VM_SEALED);
> out:
> *prev = vma;
> return ret;
> @@ -53,7 +48,6 @@ static int check_mm_seal(unsigned long start, unsigned long end)
> {
> struct vm_area_struct *vma;
> unsigned long nstart = start;
> -
> VMA_ITERATOR(vmi, current->mm, start);
>
> /* going through each vma to check. */
> @@ -78,7 +72,6 @@ static int apply_mm_seal(unsigned long start, unsigned long end)
> {
> unsigned long nstart;
> struct vm_area_struct *vma, *prev;
> -
> VMA_ITERATOR(vmi, current->mm, start);
>
> vma = vma_iter_load(&vmi);
> diff --git a/mm/vma.h b/mm/vma.h
> index 6515045ba342..d17f560cf53d 100644
> --- a/mm/vma.h
> +++ b/mm/vma.h
> @@ -560,31 +560,19 @@ struct vm_area_struct *vma_iter_next_rewind(struct vma_iterator *vmi,
> }
>
> #ifdef CONFIG_64BIT
> -
> -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.
> - */
> +/* Check if a vma is sealed for modification. */
> static inline bool can_modify_vma(struct vm_area_struct *vma)
> {
> - if (unlikely(vma_is_sealed(vma)))
> + if (unlikely(vma->vm_flags & VM_SEALED))
> return false;
>
> return true;
> }
> -
> #else
> -
> static inline bool can_modify_vma(struct vm_area_struct *vma)
> {
> return true;
> }
> -
> #endif
>
> #if defined(CONFIG_STACK_GROWSUP)
> --
> 2.50.1
On Mon, Jul 14, 2025 at 02:00:38PM +0100, Lorenzo Stoakes wrote:
> Drop the wholly unnecessary set_vma_sealed() and vma_is_sealed() helpers
> which are used only once, and place VMA_ITERATOR() declarations in the
> correct place.
>
> No functional change intended.
>
> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> ---
> mm/mseal.c | 9 +--------
> mm/vma.h | 16 ++--------------
> 2 files changed, 3 insertions(+), 22 deletions(-)
>
> diff --git a/mm/mseal.c b/mm/mseal.c
> index 1308e88ab184..adbcc65e9660 100644
> --- a/mm/mseal.c
> +++ b/mm/mseal.c
> @@ -15,11 +15,6 @@
> #include <linux/sched.h>
> #include "internal.h"
>
> -static inline void set_vma_sealed(struct vm_area_struct *vma)
> -{
> - vm_flags_set(vma, VM_SEALED);
> -}
> -
> static int mseal_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma,
> struct vm_area_struct **prev, unsigned long start,
> unsigned long end, vm_flags_t newflags)
> @@ -36,7 +31,7 @@ static int mseal_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma,
> goto out;
> }
>
> - set_vma_sealed(vma);
> + vm_flags_set(vma, VM_SEALED);
> out:
> *prev = vma;
> return ret;
> @@ -53,7 +48,6 @@ static int check_mm_seal(unsigned long start, unsigned long end)
> {
> struct vm_area_struct *vma;
> unsigned long nstart = start;
> -
> VMA_ITERATOR(vmi, current->mm, start);
>
> /* going through each vma to check. */
> @@ -78,7 +72,6 @@ static int apply_mm_seal(unsigned long start, unsigned long end)
> {
> unsigned long nstart;
> struct vm_area_struct *vma, *prev;
> -
> VMA_ITERATOR(vmi, current->mm, start);
>
> vma = vma_iter_load(&vmi);
> diff --git a/mm/vma.h b/mm/vma.h
> index 6515045ba342..d17f560cf53d 100644
> --- a/mm/vma.h
> +++ b/mm/vma.h
> @@ -560,31 +560,19 @@ struct vm_area_struct *vma_iter_next_rewind(struct vma_iterator *vmi,
> }
>
> #ifdef CONFIG_64BIT
> -
> -static inline bool vma_is_sealed(struct vm_area_struct *vma)
> -{
> - return (vma->vm_flags & VM_SEALED);
> -}
I actually don't hate this helper...
> -
> -/*
> - * check if a vma is sealed for modification.
> - * return true, if modification is allowed.
> - */
> +/* Check if a vma is sealed for modification. */
> static inline bool can_modify_vma(struct vm_area_struct *vma)
As you're in the area, vma_can_modify() maybe?
In any case, LGTM.
Reviewed-by: Pedro Falcato <pfalcato@suse.de>
--
Pedro
On 14.07.25 15:00, Lorenzo Stoakes wrote: > Drop the wholly unnecessary set_vma_sealed() and vma_is_sealed() helpers > which are used only once, and place VMA_ITERATOR() declarations in the > correct place. > > No functional change intended. > > Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> > --- Acked-by: David Hildenbrand <david@redhat.com> -- Cheers, David / dhildenb
© 2016 - 2026 Red Hat, Inc.