Re: [PATCH] x86/fpu: Reset MXCSR to default in kernel_fpu_begin()

From: Andy Lutomirski
Date: Tue Jun 16 2020 - 17:17:23 EST




> On Jun 16, 2020, at 11:01 AM, Borislav Petkov <bp@xxxxxxxxx> wrote:
>
> ïOn Tue, Jun 16, 2020 at 09:53:39AM -0700, Andy Lutomirski wrote:
>>> On Tue, Jun 16, 2020 at 2:53 AM Borislav Petkov <bp@xxxxxxxxx> wrote:
>>>
>>> Ok,
>>>
>>> here's the fix first so that it goes in. I'll hammer on the test case later.
>>
>> Does the 32-bit case need FNINIT?
>
> Pasting from IRC:
>
> I'm thinking if you'd need to reinit the FPU, then you need to do it for
> both, not only 32-bit or do you mean something else? Also, if you end up
> doing FNSAVE (old CPU) that one reinits state.

We definitely need to sanitize MXCSR for kernel fpu if kernel fpu means SSE2. If kernel fpu means x87, we need to fix the fpu control word.

On x86_64, I suspect the UEFI ABI technically requires a clean x87 control word too. If weâre willing to declare that the kernel proper wonât use x87, then we could shove that into the UEFI code.

>
> Whatever we decide doing, this should be a separate patch anyway.
>
> Thx.
>
> --
> Regards/Gruss,
> Boris.
>
> https://people.kernel.org/tglx/notes-about-netiquette