x86/microcode: Convert to bare minimum MSR accessors
Having tracepoints to the MSR accessors makes them unsuitable for early microcode loading: think 32-bit before paging is enabled and us chasing pointers to test whether a tracepoint is enabled or not. Results in a reliable triple fault. Convert to the bare ones. Signed-off-by: Borislav Petkov <bp@suse.de> Link: http://lkml.kernel.org/r/20170120202955.4091-4-bp@alien8.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
a585df8eda
commit
0c12d18ab9
|
@ -7,18 +7,17 @@
|
|||
|
||||
#define native_rdmsr(msr, val1, val2) \
|
||||
do { \
|
||||
u64 __val = native_read_msr((msr)); \
|
||||
u64 __val = __rdmsr((msr)); \
|
||||
(void)((val1) = (u32)__val); \
|
||||
(void)((val2) = (u32)(__val >> 32)); \
|
||||
} while (0)
|
||||
|
||||
#define native_wrmsr(msr, low, high) \
|
||||
native_write_msr(msr, low, high)
|
||||
__wrmsr(msr, low, high)
|
||||
|
||||
#define native_wrmsrl(msr, val) \
|
||||
native_write_msr((msr), \
|
||||
(u32)((u64)(val)), \
|
||||
(u32)((u64)(val) >> 32))
|
||||
__wrmsr((msr), (u32)((u64)(val)), \
|
||||
(u32)((u64)(val) >> 32))
|
||||
|
||||
struct ucode_patch {
|
||||
struct list_head plist;
|
||||
|
|
Loading…
Reference in New Issue