x86, microcode: Share native MSR accessing variants
authorBorislav Petkov <bp@suse.de>
Wed, 4 Dec 2013 11:31:31 +0000 (12:31 +0100)
committerBorislav Petkov <bp@suse.de>
Mon, 13 Jan 2014 18:57:27 +0000 (19:57 +0100)
We want to use those in AMD's early loading path too. Also, add a
native_wrmsrl variant.

Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
arch/x86/include/asm/microcode.h
arch/x86/kernel/microcode_intel_early.c

index f98bd6625318210adb03615f3b282b6454db319d..b59827e765292459247baa6866329ddec3e7fa91 100644 (file)
@@ -1,6 +1,21 @@
 #ifndef _ASM_X86_MICROCODE_H
 #define _ASM_X86_MICROCODE_H
 
+#define native_rdmsr(msr, val1, val2)                  \
+do {                                                   \
+       u64 __val = native_read_msr((msr));             \
+       (void)((val1) = (u32)__val);                    \
+       (void)((val2) = (u32)(__val >> 32));            \
+} while (0)
+
+#define native_wrmsr(msr, low, high)                   \
+       native_write_msr(msr, low, high)
+
+#define native_wrmsrl(msr, val)                                \
+       native_write_msr((msr),                         \
+                        (u32)((u64)(val)),             \
+                        (u32)((u64)(val) >> 32))
+
 struct cpu_signature {
        unsigned int sig;
        unsigned int pf;
index 1575deb2e636af5699e20af86a0ba63818c9ae5c..18f739129e72080c4c41c863361473e0412b414c 100644 (file)
@@ -365,16 +365,6 @@ out:
        return state;
 }
 
-#define native_rdmsr(msr, val1, val2)          \
-do {                                           \
-       u64 __val = native_read_msr((msr));     \
-       (void)((val1) = (u32)__val);            \
-       (void)((val2) = (u32)(__val >> 32));    \
-} while (0)
-
-#define native_wrmsr(msr, low, high)           \
-       native_write_msr(msr, low, high);
-
 static int collect_cpu_info_early(struct ucode_cpu_info *uci)
 {
        unsigned int val[2];