Re: [PATCH v2 3/8] x86/msr: Consolidate rdmsr_safe() implementations
From: Maciej Wieczor-Retman
Date: Thu Apr 30 2026 - 15:44:06 EST
On 2026-04-29 at 11:45:22 -0700, Dave Hansen wrote:
>
>From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
>
>Move the existing "native" rdmsr_safe() implementation out to common
>code. Consolidate the two rdmsr_safe() implementations down to one
>by removing the paravirt.h version.
>
>Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
>---
>
> b/arch/x86/include/asm/msr.h | 20 ++++++++++----------
> b/arch/x86/include/asm/paravirt.h | 10 ----------
> 2 files changed, 10 insertions(+), 20 deletions(-)
>
>diff -puN arch/x86/include/asm/msr.h~rdmsr-dups-4 arch/x86/include/asm/msr.h
>--- a/arch/x86/include/asm/msr.h~rdmsr-dups-4 2026-04-01 14:32:56.670457110 -0700
>+++ b/arch/x86/include/asm/msr.h 2026-04-01 14:32:56.676457335 -0700
>@@ -237,6 +227,16 @@ do { \
> (void)((high) = (u32)(__val >> 32)); \
> } while (0)
>
>+/* rdmsr with exception handling */
>+#define rdmsr_safe(msr, low, high) \
>+({ \
>+ u64 __val; \
>+ int __err = paravirt_read_msr_safe((msr), &__val); \
I guess this backslash could be aligned with other ones?
Other than that everything looks ok to me, boot tested it too with and without
PARAVIRT_XXL on v7.1-rc1 without issues. So for the whole patchset:
Tested-by: Maciej Wieczor-Retman <maciej.wieczor-retman@xxxxxxxxx>
Acked-by: Maciej Wieczor-Retman <maciej.wieczor-retman@xxxxxxxxx>
--
Kind regards
Maciej Wieczór-Retman