| From | Joerg Roedel <> | Subject | [PATCH v5 37/75] x86/head/64: Set CR4.FSGSBASE early | Date | Fri, 24 Jul 2020 18:02:58 +0200 |
| |
From: Joerg Roedel <jroedel@suse.de>
Early exception handling will use rd/wrgsbase in paranoid_entry/exit. Enable the feature to avoid #UD exceptions on boot APs.
Signed-off-by: Joerg Roedel <jroedel@suse.de> --- arch/x86/kernel/head_64.S | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S index 08412f308de3..4622940134a5 100644 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S @@ -153,6 +153,13 @@ SYM_CODE_START(secondary_startup_64) orl $X86_CR4_LA57, %ecx 1: #endif + + ALTERNATIVE "jmp .Lstartup_write_cr4", "", X86_FEATURE_FSGSBASE + + /* Early exception handling uses FSGSBASE on APs */ + orl $X86_CR4_FSGSBASE, %ecx + +.Lstartup_write_cr4: movq %rcx, %cr4 /* Setup early boot stage 4-/5-level pagetables. */ -- 2.27.0
|