lkml.org 
[lkml]   [2021]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch V2 04/52] x86/fpu: Mark various FPU states __ro_after_init
    Nothing modifies these after booting.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Andy Lutomirski <luto@kernel.org>
    ---
    arch/x86/kernel/fpu/init.c | 4 ++--
    arch/x86/kernel/fpu/xstate.c | 16 ++++++++++------
    2 files changed, 12 insertions(+), 8 deletions(-)

    --- a/arch/x86/kernel/fpu/init.c
    +++ b/arch/x86/kernel/fpu/init.c
    @@ -89,7 +89,7 @@ static void fpu__init_system_early_gener
    /*
    * Boot time FPU feature detection code:
    */
    -unsigned int mxcsr_feature_mask __read_mostly = 0xffffffffu;
    +unsigned int mxcsr_feature_mask __ro_after_init = 0xffffffffu;
    EXPORT_SYMBOL_GPL(mxcsr_feature_mask);

    static void __init fpu__init_system_mxcsr(void)
    @@ -135,7 +135,7 @@ static void __init fpu__init_system_gene
    * This is inherent to the XSAVE architecture which puts all state
    * components into a single, continuous memory block:
    */
    -unsigned int fpu_kernel_xstate_size;
    +unsigned int fpu_kernel_xstate_size __ro_after_init;
    EXPORT_SYMBOL_GPL(fpu_kernel_xstate_size);

    /* Get alignment of the TYPE. */
    --- a/arch/x86/kernel/fpu/xstate.c
    +++ b/arch/x86/kernel/fpu/xstate.c
    @@ -59,19 +59,23 @@ static short xsave_cpuid_features[] __in
    * This represents the full set of bits that should ever be set in a kernel
    * XSAVE buffer, both supervisor and user xstates.
    */
    -u64 xfeatures_mask_all __read_mostly;
    +u64 xfeatures_mask_all __ro_after_init;

    -static unsigned int xstate_offsets[XFEATURE_MAX] = { [ 0 ... XFEATURE_MAX - 1] = -1};
    -static unsigned int xstate_sizes[XFEATURE_MAX] = { [ 0 ... XFEATURE_MAX - 1] = -1};
    -static unsigned int xstate_comp_offsets[XFEATURE_MAX] = { [ 0 ... XFEATURE_MAX - 1] = -1};
    -static unsigned int xstate_supervisor_only_offsets[XFEATURE_MAX] = { [ 0 ... XFEATURE_MAX - 1] = -1};
    +static unsigned int xstate_offsets[XFEATURE_MAX] __ro_after_init =
    + { [ 0 ... XFEATURE_MAX - 1] = -1};
    +static unsigned int xstate_sizes[XFEATURE_MAX] __ro_after_init =
    + { [ 0 ... XFEATURE_MAX - 1] = -1};
    +static unsigned int xstate_comp_offsets[XFEATURE_MAX] __ro_after_init =
    + { [ 0 ... XFEATURE_MAX - 1] = -1};
    +static unsigned int xstate_supervisor_only_offsets[XFEATURE_MAX] __ro_after_init =
    + { [ 0 ... XFEATURE_MAX - 1] = -1};

    /*
    * The XSAVE area of kernel can be in standard or compacted format;
    * it is always in standard format for user mode. This is the user
    * mode standard format size used for signal and ptrace frames.
    */
    -unsigned int fpu_user_xstate_size;
    +unsigned int fpu_user_xstate_size __ro_after_init;

    /*
    * Return whether the system supports a given xfeature.
    \
     
     \ /
      Last update: 2021-06-14 18:38    [W:8.590 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site