mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Chang S. Bae" <chang.seok.bae@intel.com>
To: mingo@redhat.com
Cc: linux-kernel@vger.kernel.org, x86@kernel.org, tglx@linutronix.de,
	bp@alien8.de, dave.hansen@linux.intel.com,
	chang.seok.bae@intel.com,
	Aruna Ramakrishna <aruna.ramakrishna@oracle.com>,
	Tony W Wang-oc <TonyWWang-oc@zhaoxin.com>
Subject: [PATCH 08/10] x86/pkeys: Simplify PKRU update in signal frame
Date: Tue, 15 Apr 2025 19:16:58 -0700	[thread overview]
Message-ID: <20250416021720.12305-9-chang.seok.bae@intel.com> (raw)
In-Reply-To: <20250416021720.12305-1-chang.seok.bae@intel.com>

The signal delivery logic was modified to always set the PKRU bit in
xregs_state->header->xfeatures by this commit:

    ae6012d72fa6 ("x86/pkeys: Ensure updated PKRU value is XRSTOR'd")

However, the change derives the bitmask value using XGETBV(1), rather
than simply updating the buffer that already holds the value. Thus, this
approach induces an unnecessary dependency on XGETBV1 for PKRU handling.

Eliminate the dependency by using the established helper function.
Subsequently, remove the now-unused 'mask' argument.

Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
Cc: Aruna Ramakrishna <aruna.ramakrishna@oracle.com>
Cc: Tony W Wang-oc <TonyWWang-oc@zhaoxin.com>
---
Changes from the last posting:
https://lore.kernel.org/lkml/20250214010607.7067-3-chang.seok.bae@intel.com/
* Massage the changelog

Additional Context:
  Previously, the concern was raised about environments where XGETBV1 is
  unavailable — such as in some virtual machines:

    https://lore.kernel.org/lkml/20250102075419.2559-1-TonyWWang-oc@zhaoxin.com

  That patch tried to sidestep the problem by skipping PKRU updates
  entirely when XGETBV1 is inaccessible. However, this assumed the
  dependency was necessary, which isn’t the case.
---
 arch/x86/kernel/fpu/xstate.h | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kernel/fpu/xstate.h b/arch/x86/kernel/fpu/xstate.h
index aadf02aed071..a6d987c16293 100644
--- a/arch/x86/kernel/fpu/xstate.h
+++ b/arch/x86/kernel/fpu/xstate.h
@@ -84,18 +84,15 @@ static inline int set_xfeature_in_sigframe(struct xregs_state __user *xbuf, u64
 /*
  * Update the value of PKRU register that was already pushed onto the signal frame.
  */
-static inline int update_pkru_in_sigframe(struct xregs_state __user *buf, u64 mask, u32 pkru)
+static inline int update_pkru_in_sigframe(struct xregs_state __user *buf, u32 pkru)
 {
-	u64 xstate_bv;
 	int err;
 
 	if (unlikely(!cpu_feature_enabled(X86_FEATURE_OSPKE)))
 		return 0;
 
 	/* Mark PKRU as in-use so that it is restored correctly. */
-	xstate_bv = (mask & xfeatures_in_use()) | XFEATURE_MASK_PKRU;
-
-	err =  __put_user(xstate_bv, &buf->header.xfeatures);
+	err = set_xfeature_in_sigframe(buf, XFEATURE_MASK_PKRU);
 	if (err)
 		return err;
 
@@ -319,7 +316,7 @@ static inline int xsave_to_user_sigframe(struct xregs_state __user *buf, u32 pkr
 	clac();
 
 	if (!err)
-		err = update_pkru_in_sigframe(buf, mask, pkru);
+		err = update_pkru_in_sigframe(buf, pkru);
 
 	return err;
 }
-- 
2.45.2


  parent reply	other threads:[~2025-04-16  2:17 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-27 18:44 [PATCH RFC v1 00/11] x86: Support Intel Advanced Performance Extensions Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 01/11] x86/fpu/xstate: Simplify print_xstate_features() Chang S. Bae
2025-02-27 18:51   ` Dave Hansen
2025-02-27 18:52   ` Ingo Molnar
2025-02-27 19:04   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 02/11] x86/fpu/xstate: Introduce xstate order table and accessor macro Chang S. Bae
2025-02-27 19:03   ` Dave Hansen
2025-02-27 19:34     ` Andrew Cooper
2025-02-27 19:42       ` Ingo Molnar
2025-03-20 23:46     ` Chang S. Bae
2025-02-27 19:05   ` Ingo Molnar
2025-02-27 19:32     ` Dave Hansen
2025-02-27 19:36       ` Ingo Molnar
2025-02-27 19:49         ` Andrew Cooper
2025-02-27 20:06           ` Ingo Molnar
2025-02-27 21:10             ` Andrew Cooper
2025-02-27 21:28               ` Ingo Molnar
2025-02-27 21:30                 ` Ingo Molnar
2025-02-27 22:23                   ` Andrew Cooper
2025-02-28  3:10                   ` Chang S. Bae
2025-02-28 17:11                     ` Ingo Molnar
2025-02-27 19:56         ` Dave Hansen
2025-02-27 20:02           ` Ingo Molnar
2025-02-27 20:19             ` Dave Hansen
2025-02-27 20:29               ` Ingo Molnar
2025-02-27 21:17                 ` Dave Hansen
2025-02-27 21:37                   ` Ingo Molnar
2025-02-27 23:54                     ` Dave Hansen
2025-02-28 15:20                       ` Sean Christopherson
2025-02-27 18:44 ` [PATCH RFC v1 03/11] x86/fpu/xstate: Remove xstate offset check Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 04/11] x86/fpu/xstate: Adjust XSAVE buffer size calculation Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 05/11] x86/fpu/xstate: Adjust xstate copying logic for user ABI Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 06/11] x86/fpu/mpx: Remove MPX xstate component support Chang S. Bae
2025-02-27 19:12   ` Ingo Molnar
2025-02-28  3:12     ` Chang S. Bae
2025-03-20 23:47       ` Chang S. Bae
2025-04-01 17:13         ` Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 07/11] x86/cpufeatures: Add X86_FEATURE_APX Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 08/11] x86/fpu/apx: Define APX state component Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 09/11] x86/fpu/apx: Disallow conflicting MPX presence Chang S. Bae
2025-02-27 23:16   ` Dave Hansen
2025-02-27 23:58     ` Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 10/11] x86/fpu/apx: Enable APX state support Chang S. Bae
2025-02-27 18:44 ` [PATCH RFC v1 11/11] selftests/x86/apx: Add APX test Chang S. Bae
2025-02-27 19:15 ` [PATCH RFC v1 00/11] x86: Support Intel Advanced Performance Extensions Ingo Molnar
2025-02-27 19:36   ` Dave Hansen
2025-02-28  3:10     ` Chang S. Bae
2025-03-20 23:42 ` [PATCH RFC v2 0/9] " Chang S. Bae
2025-03-20 23:42   ` [PATCH RFC v2 1/9] x86/fpu/xstate: Remove xstate offset check Chang S. Bae
2025-03-25 10:18     ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-14  7:34     ` [tip: x86/merge] " tip-bot2 for Chang S. Bae
2025-03-20 23:42   ` [PATCH RFC v2 2/9] x86/fpu/xstate: Introduce xfeature order table and accessor macro Chang S. Bae
2025-03-25 10:18     ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-14  7:34     ` [tip: x86/merge] " tip-bot2 for Chang S. Bae
2025-03-20 23:42   ` [PATCH RFC v2 3/9] x86/fpu/xstate: Adjust XSAVE buffer size calculation Chang S. Bae
2025-03-25 10:28     ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-14  7:34     ` [tip: x86/merge] " tip-bot2 for Chang S. Bae
2025-03-20 23:42   ` [PATCH RFC v2 4/9] x86/fpu/xstate: Adjust xstate copying logic for user ABI Chang S. Bae
2025-03-25 10:18     ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-03-25 10:28     ` tip-bot2 for Chang S. Bae
2025-04-14  7:34     ` [tip: x86/merge] " tip-bot2 for Chang S. Bae
2025-03-20 23:42   ` [PATCH RFC v2 5/9] x86/cpufeatures: Add X86_FEATURE_APX Chang S. Bae
2025-04-11 16:12     ` [PATCH RFC v2a " Chang S. Bae
2025-04-11 16:54       ` Sohil Mehta
2025-04-11 18:23         ` Chang S. Bae
2025-04-11 21:57           ` Sohil Mehta
2025-04-12  8:43             ` Ingo Molnar
2025-04-14  8:23               ` Ingo Molnar
2025-04-14 17:28                 ` Sohil Mehta
2025-04-14 17:32                   ` Dave Hansen
2025-04-14 17:45                     ` Sohil Mehta
2025-04-14 18:02                       ` Chang S. Bae
2025-04-14 18:12                         ` Sohil Mehta
2025-04-14 18:31                 ` Chang S. Bae
2025-04-16  2:16               ` [PATCH 00/10] x86/fpu: APX enablement and assorted FPU code improvements Chang S. Bae
2025-04-16  2:16                 ` [PATCH 01/10] x86/cpufeatures: Add X86_FEATURE_APX Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16  2:16                 ` [PATCH 02/10] x86/fpu/apx: Define APX state component Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16  2:16                 ` [PATCH 03/10] x86/fpu/apx: Disallow conflicting MPX presence Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16  2:16                 ` [PATCH 04/10] x86/fpu/apx: Enable APX state support Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16  2:16                 ` [PATCH 05/10] selftests/x86/apx: Add APX test Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16  2:16                 ` [PATCH 06/10] x86/fpu: Log XSAVE disablement consistently Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16 16:56                   ` [PATCH 06/10] " Sohil Mehta
2025-04-16 17:03                     ` Chang S. Bae
2025-04-16 18:04                       ` Sohil Mehta
2025-04-16  2:16                 ` [PATCH 07/10] x86/fpu: Refactor xfeature bitmask update code for sigframe XSAVE Chang S. Bae
2025-04-16  8:05                   ` Ingo Molnar
2025-04-16 16:55                     ` Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16  2:16                 ` Chang S. Bae [this message]
2025-04-16  8:17                   ` [tip: x86/fpu] x86/pkeys: Simplify PKRU update in signal frame tip-bot2 for Chang S. Bae
2025-04-16  2:16                 ` [PATCH 09/10] x86/fpu: Remove export of mxcsr_feature_mask Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16  2:17                 ` [PATCH 10/10] x86/fpu: Rename fpu_reset_fpregs() to fpu_reset_fpstate_regs() Chang S. Bae
2025-04-16  8:17                   ` [tip: x86/fpu] " tip-bot2 for Chang S. Bae
2025-04-16  8:07                 ` [PATCH 00/10] x86/fpu: APX enablement and assorted FPU code improvements Ingo Molnar
2025-04-16 16:56                   ` Chang S. Bae
2025-03-20 23:42   ` [PATCH RFC v2 6/9] x86/fpu/apx: Define APX state component Chang S. Bae
2025-04-11 22:54     ` Sohil Mehta
2025-03-20 23:42   ` [PATCH RFC v2 7/9] x86/fpu/apx: Disallow conflicting MPX presence Chang S. Bae
2025-04-14 17:09     ` Sohil Mehta
2025-04-14 17:25       ` Dave Hansen
2025-03-20 23:42   ` [PATCH RFC v2 8/9] x86/fpu/apx: Enable APX state support Chang S. Bae
2025-04-14 15:41     ` Sohil Mehta
2025-03-20 23:43   ` [PATCH RFC v2 9/9] selftests/x86/apx: Add APX test Chang S. Bae
2025-04-14 16:02     ` Sohil Mehta
2025-03-25 10:25   ` [PATCH RFC v2 0/9] x86: Support Intel Advanced Performance Extensions Ingo Molnar

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=20250416021720.12305-9-chang.seok.bae@intel.com \
    --to=chang.seok.bae@intel.com \
    --cc=TonyWWang-oc@zhaoxin.com \
    --cc=aruna.ramakrishna@oracle.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®