Re: [PATCH v2 1/1] mseal: remove can_do_mseal()

From: Jeff Xu
Date: Fri Dec 06 2024 - 15:08:29 EST


On Fri, Dec 6, 2024 at 11:57 AM Lorenzo Stoakes
<lorenzo.stoakes@xxxxxxxxxx> wrote:
>
> On Fri, Dec 06, 2024 at 07:48:39PM +0000, jeffxu@xxxxxxxxxxxx wrote:
> > From: Jeff Xu <jeffxu@xxxxxxxxxxxx>
> >
> > No code logic change.
> >
> > can_do_mseal() is called exclusively by mseal.c, and mseal.c is compiled
> > only when CONFIG_64BIT flag is set in makefile. Therefore, it is
> > unnecessary to have 32 bit stub function in the header file, remove
> > this function and merge the logic into do_mseal().
> >
> > Link: https://lkml.kernel.org/r/20241206013934.2782793-1-jeffxu@xxxxxxxxxx
Please remove the link field here when applying.
(I pull the mm-unstable and apply my change on top of the existing commit.)


> > Signed-off-by: Jeff Xu <jeffxu@xxxxxxxxxxxx>
>
> LGTM,
>
> Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>
>
> > Cc: Jorge Lucangeli Obes <jorgelo@xxxxxxxxxxxx>
> > Cc: Kees Cook <keescook@xxxxxxxxxxxx>
> > Cc: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx>
> > Cc: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>
> > Cc: Pedro Falcato <pedro.falcato@xxxxxxxxx>
> > Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> > Cc: Vlastimil Babka <vbabka@xxxxxxx>
> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>
> Not sure you should be submitting a S-o-b for Andrew :P I'm thinking this
> is a copy/paste mistake.
>
I realized where this is coming from after seeing this response.
Thanks for pointing it out


> > ---
> > mm/internal.h | 16 ----------------
> > mm/mseal.c | 6 +++---
> > 2 files changed, 3 insertions(+), 19 deletions(-)
> >
> > diff --git a/mm/internal.h b/mm/internal.h
> > index 74dc1c48fa31..5e4ef5ce9c0a 100644
> > --- a/mm/internal.h
> > +++ b/mm/internal.h
> > @@ -1457,22 +1457,6 @@ void __meminit __init_single_page(struct page *page, unsigned long pfn,
> > unsigned long shrink_slab(gfp_t gfp_mask, int nid, struct mem_cgroup *memcg,
> > int priority);
> >
> > -#ifdef CONFIG_64BIT
> > -static inline int can_do_mseal(unsigned long flags)
> > -{
> > - if (flags)
> > - return -EINVAL;
> > -
> > - return 0;
> > -}
> > -
> > -#else
> > -static inline int can_do_mseal(unsigned long flags)
> > -{
> > - return -EPERM;
> > -}
> > -#endif
> > -
> > #ifdef CONFIG_SHRINKER_DEBUG
> > static inline __printf(2, 0) int shrinker_debugfs_name_alloc(
> > struct shrinker *shrinker, const char *fmt, va_list ap)
> > diff --git a/mm/mseal.c b/mm/mseal.c
> > index 81d6e980e8a9..c27197ac04e8 100644
> > --- a/mm/mseal.c
> > +++ b/mm/mseal.c
> > @@ -217,9 +217,9 @@ int do_mseal(unsigned long start, size_t len_in, unsigned long flags)
> > unsigned long end;
> > struct mm_struct *mm = current->mm;
> >
> > - ret = can_do_mseal(flags);
> > - if (ret)
> > - return ret;
> > + /* Verify flags not set. */
> > + if (flags)
> > + return -EINVAL;
> >
> > start = untagged_addr(start);
> > if (!PAGE_ALIGNED(start))
> > --
> > 2.47.0.338.g60cca15819-goog
> >