lkml.org 
[lkml]   [2021]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch V4 02/65] x86/pkeys: Revert a5eff7259790 ("x86/pkeys: Add PKRU value to init_fpstate")
    This cannot work and it's unclear how that ever made a difference.

    init_fpstate.xsave.header.xfeatures is always 0 so get_xsave_addr() will
    always return a NULL pointer, which will prevent storing the default PKRU
    value in initfp_state.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Borislav Petkov <bp@suse.de>
    ---
    V2: Fix subject
    ---
    arch/x86/kernel/cpu/common.c | 5 -----
    arch/x86/mm/pkeys.c | 6 ------
    2 files changed, 11 deletions(-)

    --- a/arch/x86/kernel/cpu/common.c
    +++ b/arch/x86/kernel/cpu/common.c
    @@ -466,8 +466,6 @@ static bool pku_disabled;

    static __always_inline void setup_pku(struct cpuinfo_x86 *c)
    {
    - struct pkru_state *pk;
    -
    /* check the boot processor, plus compile options for PKU: */
    if (!cpu_feature_enabled(X86_FEATURE_PKU))
    return;
    @@ -478,9 +476,6 @@ static __always_inline void setup_pku(st
    return;

    cr4_set_bits(X86_CR4_PKE);
    - pk = get_xsave_addr(&init_fpstate.xsave, XFEATURE_PKRU);
    - if (pk)
    - pk->pkru = init_pkru_value;
    /*
    * Setting X86_CR4_PKE will cause the X86_FEATURE_OSPKE
    * cpuid bit to be set. We need to ensure that we
    --- a/arch/x86/mm/pkeys.c
    +++ b/arch/x86/mm/pkeys.c
    @@ -10,7 +10,6 @@

    #include <asm/cpufeature.h> /* boot_cpu_has, ... */
    #include <asm/mmu_context.h> /* vma_pkey() */
    -#include <asm/fpu/internal.h> /* init_fpstate */

    int __execute_only_pkey(struct mm_struct *mm)
    {
    @@ -154,7 +153,6 @@ static ssize_t init_pkru_read_file(struc
    static ssize_t init_pkru_write_file(struct file *file,
    const char __user *user_buf, size_t count, loff_t *ppos)
    {
    - struct pkru_state *pk;
    char buf[32];
    ssize_t len;
    u32 new_init_pkru;
    @@ -177,10 +175,6 @@ static ssize_t init_pkru_write_file(stru
    return -EINVAL;

    WRITE_ONCE(init_pkru_value, new_init_pkru);
    - pk = get_xsave_addr(&init_fpstate.xsave, XFEATURE_PKRU);
    - if (!pk)
    - return -EINVAL;
    - pk->pkru = new_init_pkru;
    return count;
    }

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