lkml.org 
[lkml]   [2015]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 111/208] x86/fpu: Do CLTS fpu__init_system()
    Date
    mxcsr_feature_mask_init() depends on TS being cleared, as it executes
    an FXSAVE instruction.

    After later changes we will move the TS setup into fpu__init_cpu(),
    which will interact with this - so clear the TS flag explicitly.

    Reviewed-by: Borislav Petkov <bp@alien8.de>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    ---
    arch/x86/kernel/fpu/init.c | 7 +++++++
    1 file changed, 7 insertions(+)

    diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
    index 2752b4bae854..567e7e6cdc6b 100644
    --- a/arch/x86/kernel/fpu/init.c
    +++ b/arch/x86/kernel/fpu/init.c
    @@ -214,6 +214,13 @@ void fpu__init_system(void)
    fpu__init_cpu();

    /*
    + * But don't leave CR0::TS set yet, as some of the FPU setup methods depend
    + * on being able to execute FPU instructions that will fault on a set TS,
    + * such as the FXSAVE in mxcsr_feature_mask_init().
    + */
    + clts();
    +
    + /*
    * Set up the legacy init FPU context. (xstate init might overwrite this
    * with a more modern format, if the CPU supports it.)
    */
    --
    2.1.0


    \
     
     \ /
      Last update: 2015-05-05 21:01    [W:4.103 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site