Re: [PATCH] x86/FPU: Fix FPU handling on legacy FPU machines

From: Ingo Molnar
Date: Sat Mar 12 2016 - 10:08:25 EST



* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Fri, Mar 11, 2016 at 3:32 AM, Borislav Petkov <bp@xxxxxxxxx> wrote:
> > 486 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. 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.
>
> Obvious Ack to the patch, along with a "how did this ever work
> before?" comment..

So the window for 'real' breakage was relatively short: this is an older bug but
only became a serious bug with the following upcoming commit:

58122bf1d856 x86/fpu: Default eagerfpu=on on all CPUs

... but it's nice to have it fixed nevertheless!

Thanks,

Ingo