Web lists-archives.com

[PATCH 1/5] x86/ibrs: Introduce native_rdmsrl, and native_wrmsrl




- Remove including microcode.h, and use native macros from asm/msr.h
- added license header for spec_ctrl.c

Signed-off-by: Ashok Raj <ashok.raj@xxxxxxxxx>
---
 arch/x86/include/asm/spec_ctrl.h | 17 ++++++++++++++++-
 arch/x86/kernel/cpu/spec_ctrl.c  |  1 +
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/spec_ctrl.h b/arch/x86/include/asm/spec_ctrl.h
index 948959b..2dfa31b 100644
--- a/arch/x86/include/asm/spec_ctrl.h
+++ b/arch/x86/include/asm/spec_ctrl.h
@@ -3,12 +3,27 @@
 #ifndef _ASM_X86_SPEC_CTRL_H
 #define _ASM_X86_SPEC_CTRL_H
 
-#include <asm/microcode.h>
+#include <asm/processor.h>
+#include <asm/msr.h>
 
 void spec_ctrl_scan_feature(struct cpuinfo_x86 *c);
 void spec_ctrl_unprotected_begin(void);
 void spec_ctrl_unprotected_end(void);
 
+static inline u64 native_rdmsrl(unsigned int msr)
+{
+	u64 val;
+
+	val = __rdmsr(msr);
+
+	return val;
+}
+
+static inline void native_wrmsrl(unsigned int msr, u64 val)
+{
+	__wrmsr(msr, (u32) (val & 0xffffffffULL), (u32) (val >> 32));
+}
+
 static inline void __disable_indirect_speculation(void)
 {
 	native_wrmsrl(MSR_IA32_SPEC_CTRL, SPEC_CTRL_ENABLE_IBRS);
diff --git a/arch/x86/kernel/cpu/spec_ctrl.c b/arch/x86/kernel/cpu/spec_ctrl.c
index 843b4e6..9e9d013 100644
--- a/arch/x86/kernel/cpu/spec_ctrl.c
+++ b/arch/x86/kernel/cpu/spec_ctrl.c
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #include <linux/string.h>
 
 #include <asm/spec_ctrl.h>
-- 
2.7.4