lkml.org 
[lkml]   [2021]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch V2 20/52] x86/fpu: Cleanup arch_set_user_pkey_access()
    On Mon, Jun 14, 2021 at 05:44:28PM +0200, Thomas Gleixner wrote:
    > The function is having a sanity check with a WARN_ON_ONCE() but happily

    "The function does a sanity check..."

    > proceeds when the pkey argument is out of range.
    >
    > Clean it up.
    >
    > Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    > ---
    > arch/x86/kernel/fpu/xstate.c | 11 ++++++-----
    > 1 file changed, 6 insertions(+), 5 deletions(-)
    >
    > --- a/arch/x86/kernel/fpu/xstate.c
    > +++ b/arch/x86/kernel/fpu/xstate.c
    > @@ -887,11 +887,10 @@ EXPORT_SYMBOL_GPL(get_xsave_addr);
    > * rights for @pkey to @init_val.
    > */
    > int arch_set_user_pkey_access(struct task_struct *tsk, int pkey,
    > - unsigned long init_val)
    > + unsigned long init_val)
    > {
    > - u32 old_pkru;
    > - int pkey_shift = (pkey * PKRU_BITS_PER_PKEY);
    > - u32 new_pkru_bits = 0;
    > + u32 old_pkru, new_pkru_bits = 0;
    > + int pkey_shift;
    >
    > /*
    > * This check implies XSAVE support. OSPKE only gets

    There's a boot_cpu_has() check

    <--- here

    Might wanna convert it to cpu_feature_enabled(), while at it.

    > @@ -905,7 +904,8 @@ int arch_set_user_pkey_access(struct tas
    > * values originating from in-kernel users. Complain
    > * if a bad value is observed.
    > */
    > - WARN_ON_ONCE(pkey >= arch_max_pkey());
    > + if (WARN_ON_ONCE(pkey >= arch_max_pkey()))
    > + return -EINVAL;
    >
    > /* Set the bits we need in PKRU: */
    > if (init_val & PKEY_DISABLE_ACCESS)
    > @@ -914,6 +914,7 @@ int arch_set_user_pkey_access(struct tas
    > new_pkru_bits |= PKRU_WD_BIT;
    >
    > /* Shift the bits in to the correct place in PKRU for pkey: */
    > + pkey_shift = pkey * PKRU_BITS_PER_PKEY;
    > new_pkru_bits <<= pkey_shift;
    >
    > /* Get old PKRU and mask off any old bits in place: */

    With those addressed:

    Reviewed-by: Borislav Petkov <bp@suse.de>

    --
    Regards/Gruss,
    Boris.

    SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg

    \
     
     \ /
      Last update: 2021-06-17 14:22    [W:4.140 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site