[PATCH 4/8] x86/msr: Consolidate rdmsrq() implementations

Dave Hansen posted 8 patches 2 weeks ago
[PATCH 4/8] x86/msr: Consolidate rdmsrq() implementations
Posted by Dave Hansen 2 weeks ago

From: Dave Hansen <dave.hansen@linux.intel.com>

Use the new "raw_" indirection and consolidate the two rdmsrq()
implementations down to one.

The paravirt implementation was probably better, but just stick
with the native one here for consistency.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
---

 b/arch/x86/include/asm/msr.h      |    6 +++---
 b/arch/x86/include/asm/paravirt.h |    5 -----
 2 files changed, 3 insertions(+), 8 deletions(-)

diff -puN arch/x86/include/asm/msr.h~rdmsr-dups-5 arch/x86/include/asm/msr.h
--- a/arch/x86/include/asm/msr.h~rdmsr-dups-5	2026-03-20 11:24:19.885830584 -0700
+++ b/arch/x86/include/asm/msr.h	2026-03-20 11:24:19.892830895 -0700
@@ -194,9 +194,6 @@ static inline void wrmsr(u32 msr, u32 lo
 	raw_write_msr(msr, (u64)high << 32 | low);
 }
 
-#define rdmsrq(msr, val)			\
-	((val) = raw_read_msr((msr)))
-
 static inline void wrmsrq(u32 msr, u64 val)
 {
 	raw_write_msr(msr, val);
@@ -240,6 +237,9 @@ do {								\
 	__err;							\
 })
 
+#define rdmsrq(msr, val)			\
+	((val) = raw_read_msr((msr)))
+
 /* Instruction opcode for WRMSRNS supported in binutils >= 2.40 */
 #define ASM_WRMSRNS _ASM_BYTES(0x0f,0x01,0xc6)
 
diff -puN arch/x86/include/asm/paravirt.h~rdmsr-dups-5 arch/x86/include/asm/paravirt.h
--- a/arch/x86/include/asm/paravirt.h~rdmsr-dups-5	2026-03-20 11:24:19.888830717 -0700
+++ b/arch/x86/include/asm/paravirt.h	2026-03-20 11:24:19.891830851 -0700
@@ -166,11 +166,6 @@ static __always_inline void wrmsr(u32 ms
 	paravirt_write_msr(msr, (u64)high << 32 | low);
 }
 
-#define rdmsrq(msr, val)			\
-do {						\
-	val = paravirt_read_msr(msr);		\
-} while (0)
-
 static inline void wrmsrq(u32 msr, u64 val)
 {
 	paravirt_write_msr(msr, val);
_