All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yang Weijiang <weijiang.yang@intel.com>
To: x86@kernel.org, linux-kernel@vger.kernel.org
Cc: dave.hansen@intel.com, tglx@linutronix.de, peterz@infradead.org,
	seanjc@google.com, pbonzini@redhat.com,
	rick.p.edgecombe@intel.com, kvm@vger.kernel.org,
	yang.zhong@intel.com, jing2.liu@intel.com, chao.gao@intel.com,
	Yang Weijiang <weijiang.yang@intel.com>
Subject: [RFC PATCH 8/8] x86/fpu/xstate: WARN if normal fpstate contains kernel dynamic xfeatures
Date: Wed, 13 Sep 2023 23:23:34 -0400	[thread overview]
Message-ID: <20230914032334.75212-9-weijiang.yang@intel.com> (raw)
In-Reply-To: <20230914032334.75212-1-weijiang.yang@intel.com>

fpu_kernel_dynamic_xfeatures now are __ONLY__ enabled by guest kernel and
used for guest fpstate, i.e., none for normal fpstate. The bits are added
when guest fpstate is allocated and fpstate->is_guest set to %true.

For normal fpstate, the bits should have been removed when init system FPU
settings, WARN_ONCE() if normal fpstate contains kernel dynamic xfeatures
before xsaves is executed.

Signed-off-by: Yang Weijiang <weijiang.yang@intel.com>
---
 arch/x86/kernel/fpu/xstate.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h
index 9c6e3ca05c5c..c2b33a5db53d 100644
--- a/arch/x86/kernel/fpu/xstate.h
+++ b/arch/x86/kernel/fpu/xstate.h
@@ -186,6 +186,9 @@ static inline void os_xsave(struct fpstate *fpstate)
 	WARN_ON_FPU(!alternatives_patched);
 	xfd_validate_state(fpstate, mask, false);
 
+	WARN_ON_FPU(!fpstate->is_guest &&
+		    (mask & fpu_kernel_dynamic_xfeatures));
+
 	XSTATE_XSAVE(&fpstate->regs.xsave, lmask, hmask, err);
 
 	/* We should never fault when copying to a kernel buffer: */
-- 
2.27.0


      parent reply	other threads:[~2023-09-14  6:28 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-14  3:23 [RFC PATCH 0/8] Introduce CET supervisor xstate support Yang Weijiang
2023-09-14  3:23 ` [RFC PATCH 1/8] x86/fpu/xstate: Manually check and add XFEATURE_CET_USER xstate bit Yang Weijiang
2023-09-14  3:23 ` [RFC PATCH 2/8] x86/fpu/xstate: Fix guest fpstate allocation size calculation Yang Weijiang
2023-10-21  0:29   ` Sean Christopherson
2023-10-21  0:35     ` Sean Christopherson
2023-09-14  3:23 ` [RFC PATCH 3/8] x86/fpu/xstate: Add CET supervisor mode state support Yang Weijiang
2023-09-14  3:23 ` [RFC PATCH 4/8] x86/fpu/xstate: Introduce kernel dynamic xfeature set Yang Weijiang
2023-09-14  3:23 ` [RFC PATCH 5/8] x86/fpu/xstate: Remove kernel dynamic xfeatures from kernel default_features Yang Weijiang
2023-09-14  3:23 ` [RFC PATCH 6/8] x86/fpu/xstate: Opt-in kernel dynamic bits when calculate guest xstate size Yang Weijiang
2023-09-14  3:23 ` [RFC PATCH 7/8] x86/fpu/xstate: Tweak guest fpstate to support kernel dynamic xfeatures Yang Weijiang
2023-09-14  9:06   ` kernel test robot
2023-09-14  3:23 ` Yang Weijiang [this message]

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=20230914032334.75212-9-weijiang.yang@intel.com \
    --to=weijiang.yang@intel.com \
    --cc=chao.gao@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=jing2.liu@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rick.p.edgecombe@intel.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yang.zhong@intel.com \
    /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.