[PATCH v4 18/18] x86/msr: Make all MSR access functions __always_inline

From: Juergen Gross

Date: Mon Jun 29 2026 - 03:09:49 EST


There are a few MSR access functions left which are not yet marked as
__always_inline. Do the conversion.

Remove a leftover comment no longer being true related to this.

Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
---
V4:
- new patch
---
arch/x86/include/asm/msr.h | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/arch/x86/include/asm/msr.h b/arch/x86/include/asm/msr.h
index 74defb414931..a8cfed32d9a3 100644
--- a/arch/x86/include/asm/msr.h
+++ b/arch/x86/include/asm/msr.h
@@ -269,13 +269,12 @@ static __always_inline void native_wrmsrq(u32 msr, u64 val)
__wrmsrq(msr, val);
}

-static inline int native_read_msr_safe(u32 msr, u64 *val)
+static __always_inline int native_read_msr_safe(u32 msr, u64 *val)
{
return __rdmsr(msr, val, EX_TYPE_RDMSR_SAFE) ? -EIO : 0;
}

-/* Can be uninlined because referenced by paravirt */
-static inline int notrace native_write_msr_safe(u32 msr, u64 val)
+static __always_inline int notrace native_write_msr_safe(u32 msr, u64 val)
{
int err;

@@ -301,7 +300,7 @@ static __always_inline int native_wrmsrns_safe(u32 msr, u64 val)
extern int rdmsr_safe_regs(u32 regs[8]);
extern int wrmsr_safe_regs(u32 regs[8]);

-static inline u64 native_read_pmc(int counter)
+static __always_inline u64 native_read_pmc(int counter)
{
EAX_EDX_DECLARE_ARGS(val, low, high);

@@ -363,7 +362,7 @@ static __always_inline u64 rdmsrq(u32 msr)
}

/* rdmsr with exception handling */
-static inline int rdmsrq_safe(u32 msr, u64 *p)
+static __always_inline int rdmsrq_safe(u32 msr, u64 *p)
{
int err;

@@ -375,7 +374,7 @@ static inline int rdmsrq_safe(u32 msr, u64 *p)
return err;
}

-static inline void wrmsrq(u32 msr, u64 val)
+static __always_inline void wrmsrq(u32 msr, u64 val)
{
write_msr(msr, val);

@@ -384,7 +383,7 @@ static inline void wrmsrq(u32 msr, u64 val)
}

/* wrmsr with exception handling */
-static inline int wrmsrq_safe(u32 msr, u64 val)
+static __always_inline int wrmsrq_safe(u32 msr, u64 val)
{
int err;

--
2.54.0