diff options
Diffstat (limited to 'arch/x86/realmode/init.c')
-rw-r--r-- | arch/x86/realmode/init.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c index 099277984b80..cbca565af5bd 100644 --- a/arch/x86/realmode/init.c +++ b/arch/x86/realmode/init.c | |||
@@ -22,7 +22,7 @@ void __init setup_real_mode(void) | |||
22 | size_t size = PAGE_ALIGN(real_mode_blob_end - real_mode_blob); | 22 | size_t size = PAGE_ALIGN(real_mode_blob_end - real_mode_blob); |
23 | #ifdef CONFIG_X86_64 | 23 | #ifdef CONFIG_X86_64 |
24 | u64 *trampoline_pgd; | 24 | u64 *trampoline_pgd; |
25 | u32 efer_low, efer_high; | 25 | u64 efer; |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | /* Has to be in very low memory so we can execute real-mode AP code. */ | 28 | /* Has to be in very low memory so we can execute real-mode AP code. */ |
@@ -70,9 +70,8 @@ void __init setup_real_mode(void) | |||
70 | * Some AMD processors will #GP(0) if EFER.LMA is set in WRMSR | 70 | * Some AMD processors will #GP(0) if EFER.LMA is set in WRMSR |
71 | * so we need to mask it out. | 71 | * so we need to mask it out. |
72 | */ | 72 | */ |
73 | rdmsr(MSR_EFER, efer_low, efer_high); | 73 | rdmsrl(MSR_EFER, efer); |
74 | trampoline_header->efer_low = efer_low & ~EFER_LMA; | 74 | trampoline_header->efer = efer & ~EFER_LMA; |
75 | trampoline_header->efer_high = efer_high; | ||
76 | 75 | ||
77 | trampoline_header->start = (u64) secondary_startup_64; | 76 | trampoline_header->start = (u64) secondary_startup_64; |
78 | trampoline_cr4_features = &trampoline_header->cr4; | 77 | trampoline_cr4_features = &trampoline_header->cr4; |