Re: [PATCH v2 4/4] x86/fpu: Correct the legacy state offset and size information

From: Chang S. Bae
Date: Wed Sep 28 2022 - 18:17:00 EST


On 9/28/2022 2:06 PM, Sean Christopherson wrote:
On Thu, Sep 22, 2022, Chang S. Bae wrote:

diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
index a3f7045d1f8e..ac2ec5d6e7e4 100644
--- a/arch/x86/kernel/fpu/xstate.c
+++ b/arch/x86/kernel/fpu/xstate.c
@@ -143,8 +143,13 @@ static unsigned int xfeature_get_offset(u64 xcomp_bv, int xfeature)
* offsets.
*/
if (!cpu_feature_enabled(X86_FEATURE_XCOMPACTED) ||
- xfeature <= XFEATURE_SSE)
+ xfeature <= XFEATURE_SSE) {
+ if (xfeature <= XFEATURE_SSE)
+ pr_warn("The legacy state (%d) is discontiguously located.\n",
+ xfeature);

pr_warn() here isn't warranted. copy_uabi_to_xstate() calls this with non-extended
features,

I think patch1 makes changes not to call this for legacy features anymore.

which is perfectly fine since it manually handles MXCSR. And that helper
is directly reachable by userspace, i.e. userspace can spam the pr_warn().

I don't think I get your point. I assume that helper is __raw_xsave_addr(). But then I'm missing how it can be directly reached by userspace.

Thanks,
Chang