* [PATCH] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h>
@ 2025-06-16 8:35 Uros Bizjak
2025-06-16 8:39 ` Peter Zijlstra
2025-08-22 17:09 ` [tip: x86/cleanups] " tip-bot2 for Uros Bizjak
0 siblings, 2 replies; 5+ messages in thread
From: Uros Bizjak @ 2025-06-16 8:35 UTC (permalink / raw)
To: x86, linux-kernel
Cc: Uros Bizjak, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
Dave Hansen, H. Peter Anvin
Current minimum required version of binutils is 2.30,
which supports RDPKRU and WRPKRU instruction mnemonics.
Replace the byte-wise specification of RDPKRU and
WRPKRU with these proper mnemonics.
No functional change intended.
Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
---
arch/x86/include/asm/special_insns.h | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/x86/include/asm/special_insns.h b/arch/x86/include/asm/special_insns.h
index ecda17efa042..13e272e1a53f 100644
--- a/arch/x86/include/asm/special_insns.h
+++ b/arch/x86/include/asm/special_insns.h
@@ -75,9 +75,7 @@ static inline u32 rdpkru(void)
* "rdpkru" instruction. Places PKRU contents in to EAX,
* clears EDX and requires that ecx=0.
*/
- asm volatile(".byte 0x0f,0x01,0xee\n\t"
- : "=a" (pkru), "=d" (edx)
- : "c" (ecx));
+ asm volatile("rdpkru" : "=a" (pkru), "=d" (edx) : "c" (ecx));
return pkru;
}
@@ -89,8 +87,7 @@ static inline void wrpkru(u32 pkru)
* "wrpkru" instruction. Loads contents in EAX to PKRU,
* requires that ecx = edx = 0.
*/
- asm volatile(".byte 0x0f,0x01,0xef\n\t"
- : : "a" (pkru), "c"(ecx), "d"(edx));
+ asm volatile("wrpkru" : : "a" (pkru), "c"(ecx), "d"(edx));
}
#else
--
2.49.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h>
2025-06-16 8:35 [PATCH] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h> Uros Bizjak
@ 2025-06-16 8:39 ` Peter Zijlstra
2025-06-16 8:47 ` Uros Bizjak
2025-08-22 17:09 ` [tip: x86/cleanups] " tip-bot2 for Uros Bizjak
1 sibling, 1 reply; 5+ messages in thread
From: Peter Zijlstra @ 2025-06-16 8:39 UTC (permalink / raw)
To: Uros Bizjak
Cc: x86, linux-kernel, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
Dave Hansen, H. Peter Anvin
On Mon, Jun 16, 2025 at 10:35:57AM +0200, Uros Bizjak wrote:
> Current minimum required version of binutils is 2.30,
> which supports RDPKRU and WRPKRU instruction mnemonics.
>
> Replace the byte-wise specification of RDPKRU and
> WRPKRU with these proper mnemonics.
What about the minimal clang version and their integrated assembler?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h>
2025-06-16 8:39 ` Peter Zijlstra
@ 2025-06-16 8:47 ` Uros Bizjak
2025-06-16 8:53 ` Peter Zijlstra
0 siblings, 1 reply; 5+ messages in thread
From: Uros Bizjak @ 2025-06-16 8:47 UTC (permalink / raw)
To: Peter Zijlstra
Cc: x86, linux-kernel, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
Dave Hansen, H. Peter Anvin
On Mon, Jun 16, 2025 at 10:39 AM Peter Zijlstra <peterz@infradead.org> wrote:
>
> On Mon, Jun 16, 2025 at 10:35:57AM +0200, Uros Bizjak wrote:
> > Current minimum required version of binutils is 2.30,
> > which supports RDPKRU and WRPKRU instruction mnemonics.
> >
> > Replace the byte-wise specification of RDPKRU and
> > WRPKRU with these proper mnemonics.
>
> What about the minimal clang version and their integrated assembler?
Yes, it works with the minimum required clang version 13.0.1.
Uros.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h>
2025-06-16 8:47 ` Uros Bizjak
@ 2025-06-16 8:53 ` Peter Zijlstra
0 siblings, 0 replies; 5+ messages in thread
From: Peter Zijlstra @ 2025-06-16 8:53 UTC (permalink / raw)
To: Uros Bizjak
Cc: x86, linux-kernel, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
Dave Hansen, H. Peter Anvin
On Mon, Jun 16, 2025 at 10:47:58AM +0200, Uros Bizjak wrote:
> On Mon, Jun 16, 2025 at 10:39 AM Peter Zijlstra <peterz@infradead.org> wrote:
> >
> > On Mon, Jun 16, 2025 at 10:35:57AM +0200, Uros Bizjak wrote:
> > > Current minimum required version of binutils is 2.30,
> > > which supports RDPKRU and WRPKRU instruction mnemonics.
> > >
> > > Replace the byte-wise specification of RDPKRU and
> > > WRPKRU with these proper mnemonics.
> >
> > What about the minimal clang version and their integrated assembler?
>
> Yes, it works with the minimum required clang version 13.0.1.
Excellent!
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip: x86/cleanups] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h>
2025-06-16 8:35 [PATCH] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h> Uros Bizjak
2025-06-16 8:39 ` Peter Zijlstra
@ 2025-08-22 17:09 ` tip-bot2 for Uros Bizjak
1 sibling, 0 replies; 5+ messages in thread
From: tip-bot2 for Uros Bizjak @ 2025-08-22 17:09 UTC (permalink / raw)
To: linux-tip-commits
Cc: Uros Bizjak, Borislav Petkov (AMD), Peter Zijlstra (Intel), x86,
linux-kernel
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: 966f504977e3a04fcadbaf199e3302e95e8958b7
Gitweb: https://git.kernel.org/tip/966f504977e3a04fcadbaf199e3302e95e8958b7
Author: Uros Bizjak <ubizjak@gmail.com>
AuthorDate: Mon, 16 Jun 2025 10:35:57 +02:00
Committer: Borislav Petkov (AMD) <bp@alien8.de>
CommitterDate: Fri, 22 Aug 2025 18:54:07 +02:00
x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h>
Current minimum required version of binutils is 2.30, which supports RDPKRU and
WRPKRU instruction mnemonics.
Replace the byte-wise specification of RDPKRU and WRPKRU with these proper
mnemonics.
No functional change intended.
Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/20250616083611.157740-1-ubizjak@gmail.com
---
arch/x86/include/asm/special_insns.h | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/x86/include/asm/special_insns.h b/arch/x86/include/asm/special_insns.h
index fde2bd7..c999145 100644
--- a/arch/x86/include/asm/special_insns.h
+++ b/arch/x86/include/asm/special_insns.h
@@ -75,9 +75,7 @@ static inline u32 rdpkru(void)
* "rdpkru" instruction. Places PKRU contents in to EAX,
* clears EDX and requires that ecx=0.
*/
- asm volatile(".byte 0x0f,0x01,0xee\n\t"
- : "=a" (pkru), "=d" (edx)
- : "c" (ecx));
+ asm volatile("rdpkru" : "=a" (pkru), "=d" (edx) : "c" (ecx));
return pkru;
}
@@ -89,8 +87,7 @@ static inline void wrpkru(u32 pkru)
* "wrpkru" instruction. Loads contents in EAX to PKRU,
* requires that ecx = edx = 0.
*/
- asm volatile(".byte 0x0f,0x01,0xef\n\t"
- : : "a" (pkru), "c"(ecx), "d"(edx));
+ asm volatile("wrpkru" : : "a" (pkru), "c"(ecx), "d"(edx));
}
#else
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-08-22 17:09 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-16 8:35 [PATCH] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h> Uros Bizjak
2025-06-16 8:39 ` Peter Zijlstra
2025-06-16 8:47 ` Uros Bizjak
2025-06-16 8:53 ` Peter Zijlstra
2025-08-22 17:09 ` [tip: x86/cleanups] " tip-bot2 for Uros Bizjak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).