diff options
Diffstat (limited to 'arch/x86/kernel/reboot.c')
-rw-r--r-- | arch/x86/kernel/reboot.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 54180fa6f66f..add33f600531 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
@@ -105,6 +105,10 @@ void __noreturn machine_real_restart(unsigned int type) | |||
105 | load_cr3(initial_page_table); | 105 | load_cr3(initial_page_table); |
106 | #else | 106 | #else |
107 | write_cr3(real_mode_header->trampoline_pgd); | 107 | write_cr3(real_mode_header->trampoline_pgd); |
108 | |||
109 | /* Exiting long mode will fail if CR4.PCIDE is set. */ | ||
110 | if (static_cpu_has(X86_FEATURE_PCID)) | ||
111 | cr4_clear_bits(X86_CR4_PCIDE); | ||
108 | #endif | 112 | #endif |
109 | 113 | ||
110 | /* Jump to the identity-mapped low memory code */ | 114 | /* Jump to the identity-mapped low memory code */ |