lkml.org 
[lkml]   [2018]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] x86, powerpc : pkey-mprotect must allow pkey-0

    * Ram Pai <linuxram@us.ibm.com> wrote:

    > Once an address range is associated with an allocated pkey, it cannot be
    > reverted back to key-0. There is no valid reason for the above behavior. On
    > the contrary applications need the ability to do so.
    >
    > The patch relaxes the restriction.
    >
    > Tested on powerpc and x86_64.
    >
    > cc: Dave Hansen <dave.hansen@intel.com>
    > cc: Michael Ellermen <mpe@ellerman.id.au>
    > cc: Ingo Molnar <mingo@kernel.org>
    > Signed-off-by: Ram Pai <linuxram@us.ibm.com>
    > ---
    > arch/powerpc/include/asm/pkeys.h | 19 ++++++++++++++-----
    > arch/x86/include/asm/pkeys.h | 5 +++--
    > 2 files changed, 17 insertions(+), 7 deletions(-)
    >
    > diff --git a/arch/powerpc/include/asm/pkeys.h b/arch/powerpc/include/asm/pkeys.h
    > index 0409c80..3e8abe4 100644
    > --- a/arch/powerpc/include/asm/pkeys.h
    > +++ b/arch/powerpc/include/asm/pkeys.h
    > @@ -101,10 +101,18 @@ static inline u16 pte_to_pkey_bits(u64 pteflags)
    >
    > static inline bool mm_pkey_is_allocated(struct mm_struct *mm, int pkey)
    > {
    > - /* A reserved key is never considered as 'explicitly allocated' */
    > - return ((pkey < arch_max_pkey()) &&
    > - !__mm_pkey_is_reserved(pkey) &&
    > - __mm_pkey_is_allocated(mm, pkey));
    > + /* pkey 0 is allocated by default. */
    > + if (!pkey)
    > + return true;
    > +
    > + if (pkey < 0 || pkey >= arch_max_pkey())
    > + return false;
    > +
    > + /* reserved keys are never allocated. */
    > + if (__mm_pkey_is_reserved(pkey))
    > + return false;

    Please capitalize in comments consistently, i.e.:

    /* Reserved keys are never allocated: */

    > +
    > + return(__mm_pkey_is_allocated(mm, pkey));

    'return' is not a function.

    Thanks,

    Ingo

    \
     
     \ /
      Last update: 2018-03-09 09:44    [W:2.931 / U:0.392 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site