• Borislav Petkov's avatar
    x86/fpu: Fix eager-FPU handling on legacy FPU machines · 6e686709
    Borislav Petkov authored
    i486 derived cores like Intel Quark support only the very old,
    legacy x87 FPU (FSAVE/FRSTOR, CPUID bit FXSR is not set), and
    our FPU code wasn't handling the saving and restoring there
    properly in the 'eagerfpu' case.
    
    So after we made eagerfpu the default for all CPU types:
    
      58122bf1 x86/fpu: Default eagerfpu=on on all CPUs
    
    these old FPU designs broke. First, Andy Shevchenko reported a splat:
    
      WARNING: CPU: 0 PID: 823 at arch/x86/include/asm/fpu/internal.h:163 fpu__clear+0x8c/0x160
    
    which was us trying to execute FXRSTOR on those machines even though
    they don't support it.
    
    After taking care of that, Bryan O'Donoghue reported that a simple FPU
    test still failed because we weren't initializing the FPU state properly
    on those machines.
    
    Take care of all that.
    Reported-and-tested-by: default avatarBryan O'Donoghue <pure.logic@nexus-software.ie>
    Reported-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Acked-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Quentin Casasnovas <quentin.casasnovas@oracle.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yu-cheng <yu-cheng.yu@intel.com>
    Link: http://lkml.kernel.org/r/20160311113206.GD4312@pd.tnicSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    6e686709
core.c 12.2 KB