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

From: Ashok Raj
Date: Thu Jan 11 2018 - 20:32:30 EST


- 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