From: Borislav Petkov <bp@alien8.de>
To: Andy Lutomirski <luto@kernel.org>
Cc: x86@kernel.org, LKML <linux-kernel@vger.kernel.org>,
"Krzysztof Mazur" <krzysiek@podlesie.net>,
"Krzysztof Olędzki" <ole@ans.pl>, "Arnd Bergmann" <arnd@arndb.de>
Subject: Re: [PATCH v2 2/4] x86/mmx: Use KFPU_387 for MMX string operations
Date: Wed, 20 Jan 2021 19:18:02 +0100 [thread overview]
Message-ID: <20210120181802.GH825@zn.tnic> (raw)
In-Reply-To: <cd68d61ece035201804a06e6993a2bd06bfe298b.1611077835.git.luto@kernel.org>
On Tue, Jan 19, 2021 at 09:39:00AM -0800, Andy Lutomirski wrote:
> The default kernel_fpu_begin() doesn't work on systems that support XMM but
> haven't yet enabled CR4.OSFXSR. This causes crashes when _mmx_memcpy() is
> called too early because LDMXCSR generates #UD when the aforementioned bit
> is clear.
>
> Fix it by using kernel_fpu_begin_mask(KFPU_387) explicitly.
>
> Fixes: 7ad816762f9b ("x86/fpu: Reset MXCSR to default in kernel_fpu_begin()")
> Reported-by: Krzysztof Mazur <krzysiek@podlesie.net>
> Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: <stable@vger.kernel.org> I guess.
> ---
> arch/x86/lib/mmx_32.c | 20 +++++++++++++++-----
> 1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/lib/mmx_32.c b/arch/x86/lib/mmx_32.c
> index 4321fa02e18d..2a6ad7aa148a 100644
> --- a/arch/x86/lib/mmx_32.c
> +++ b/arch/x86/lib/mmx_32.c
> @@ -26,6 +26,16 @@
> #include <asm/fpu/api.h>
> #include <asm/asm.h>
>
> +/*
> + * For MMX, we use KFPU_387. MMX instructions are not affected by MXCSR,
> + * but both AMD and Intel documentation states that even integer MMX
> + * operations will result in #MF if an exception is pending in FCW.
> + *
> + * We don't need EMMS afterwards because, after we call kernel_fpu_end(),
> + * any subsequent user of the 387 stack will reinitialize it using
> + * KFPU_387.
Please use passive voice and convert the "we" to something impersonal.
For example:
"Use KFPU_387 for MMX. MMX instructions are not affected by MXCSR, but
both AMD and Intel documentation states that even integer MMX operations
will result in #MF if an exception is pending in FCW.
EMMS afterwards is not needed because, after kernel_fpu_end(), any
subsequent user of the 387 stack will reinitialize it using KFPU_387."
Voila, de-we-fied!
:-)
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
next prev parent reply other threads:[~2021-01-20 18:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-19 17:38 [PATCH v2 0/4] x86/fpu: Reduce unnecessary FNINIT and MXCSR usage Andy Lutomirski
2021-01-19 17:38 ` [PATCH v2 1/4] x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state Andy Lutomirski
2021-01-19 19:34 ` Sean Christopherson
2021-01-20 11:53 ` Borislav Petkov
2021-01-20 12:19 ` Andy Lutomirski
2021-01-19 17:39 ` [PATCH v2 2/4] x86/mmx: Use KFPU_387 for MMX string operations Andy Lutomirski
2021-01-20 18:18 ` Borislav Petkov [this message]
2021-01-19 17:39 ` [PATCH v2 3/4] x86/fpu: Make the EFI FPU calling convention explicit Andy Lutomirski
2021-01-19 17:39 ` [PATCH v2 4/4] x86/fpu/64: Don't FNINIT in kernel_fpu_begin() Andy Lutomirski
2021-01-20 10:07 ` Peter Zijlstra
2021-01-20 18:28 ` Borislav Petkov
2021-01-20 7:51 ` [PATCH v2 0/4] x86/fpu: Reduce unnecessary FNINIT and MXCSR usage Krzysztof Olędzki
2021-01-21 5:03 ` Andy Lutomirski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210120181802.GH825@zn.tnic \
--to=bp@alien8.de \
--cc=arnd@arndb.de \
--cc=krzysiek@podlesie.net \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=ole@ans.pl \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.