Messages in this thread | | | From | Christophe Leroy <> | Subject | Re: [RFC PATCH 6/6] pkeys: Change mm_pkey_free() to void | Date | Mon, 13 Jun 2022 09:17:06 +0000 |
| |
Le 11/06/2022 à 01:35, ira.weiny@intel.com a écrit : > From: Ira Weiny <ira.weiny@intel.com> > > Now that the pkey arch support is no longer checked in mm_pkey_free() > there is no reason to have it return int.
Right, I see this is doing what I commented in previous patch.
> > Change the return value to void. > > Cc: Dave Hansen <dave.hansen@linux.intel.com> > Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> > Suggested-by: Sohil Mehta <sohil.mehta@intel.com> > Signed-off-by: Ira Weiny <ira.weiny@intel.com> > --- > arch/powerpc/include/asm/pkeys.h | 4 +--- > arch/x86/include/asm/pkeys.h | 4 +--- > include/linux/pkeys.h | 5 +---- > mm/mprotect.c | 6 ++++-- > 4 files changed, 7 insertions(+), 12 deletions(-) > > diff --git a/arch/powerpc/include/asm/pkeys.h b/arch/powerpc/include/asm/pkeys.h > index e96aa91f817b..4d01a48ab941 100644 > --- a/arch/powerpc/include/asm/pkeys.h > +++ b/arch/powerpc/include/asm/pkeys.h > @@ -105,11 +105,9 @@ static inline int mm_pkey_alloc(struct mm_struct *mm) > return ret; > } > > -static inline int mm_pkey_free(struct mm_struct *mm, int pkey) > +static inline void mm_pkey_free(struct mm_struct *mm, int pkey) > { > __mm_pkey_free(mm, pkey); > - > - return 0; > } > > /* > diff --git a/arch/x86/include/asm/pkeys.h b/arch/x86/include/asm/pkeys.h > index da02737cc4d1..1f408f46fa9a 100644 > --- a/arch/x86/include/asm/pkeys.h > +++ b/arch/x86/include/asm/pkeys.h > @@ -105,11 +105,9 @@ int mm_pkey_alloc(struct mm_struct *mm) > } > > static inline > -int mm_pkey_free(struct mm_struct *mm, int pkey) > +void mm_pkey_free(struct mm_struct *mm, int pkey) > { > mm_set_pkey_free(mm, pkey); > - > - return 0; > } > > static inline int vma_pkey(struct vm_area_struct *vma) > diff --git a/include/linux/pkeys.h b/include/linux/pkeys.h > index 86be8bf27b41..bf98c50a3437 100644 > --- a/include/linux/pkeys.h > +++ b/include/linux/pkeys.h > @@ -30,10 +30,7 @@ static inline int mm_pkey_alloc(struct mm_struct *mm) > return -1; > } > > -static inline int mm_pkey_free(struct mm_struct *mm, int pkey) > -{ > - return -EINVAL; > -} > +static inline void mm_pkey_free(struct mm_struct *mm, int pkey) { } > > static inline int arch_set_user_pkey_access(struct task_struct *tsk, int pkey, > unsigned long init_val) > diff --git a/mm/mprotect.c b/mm/mprotect.c > index 41458e729c27..e872bdd2e228 100644 > --- a/mm/mprotect.c > +++ b/mm/mprotect.c > @@ -809,8 +809,10 @@ SYSCALL_DEFINE1(pkey_free, int, pkey) > return ret; > > mmap_write_lock(current->mm); > - if (mm_pkey_is_allocated(current->mm, pkey)) > - ret = mm_pkey_free(current->mm, pkey); > + if (mm_pkey_is_allocated(current->mm, pkey)) { > + mm_pkey_free(current->mm, pkey); > + ret = 0; > + }
Or you could have ret = 0 by default and do
if (mm_pkey_is_allocated(current->mm, pkey)) mm_pkey_free(current->mm, pkey); else ret = -EINVAL;
> mmap_write_unlock(current->mm); > > /*
| |