[tip: x86/cleanups] x86/asm: Use RDPKRU and WRPKRU mnemonics in <asm/special_insns.h>

From: tip-bot2 for Uros Bizjak
Date: Fri Aug 22 2025 - 13:11:42 EST


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@xxxxxxxxx>
AuthorDate: Mon, 16 Jun 2025 10:35:57 +02:00
Committer: Borislav Petkov (AMD) <bp@xxxxxxxxx>
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@xxxxxxxxx>
Signed-off-by: Borislav Petkov (AMD) <bp@xxxxxxxxx>
Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
Link: https://lore.kernel.org/20250616083611.157740-1-ubizjak@xxxxxxxxx
---
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