|
@@ -105,6 +105,10 @@ void __noreturn machine_real_restart(unsigned int type)
|
|
load_cr3(initial_page_table);
|
|
load_cr3(initial_page_table);
|
|
#else
|
|
#else
|
|
write_cr3(real_mode_header->trampoline_pgd);
|
|
write_cr3(real_mode_header->trampoline_pgd);
|
|
|
|
+
|
|
|
|
+ /* Exiting long mode will fail if CR4.PCIDE is set. */
|
|
|
|
+ if (static_cpu_has(X86_FEATURE_PCID))
|
|
|
|
+ cr4_clear_bits(X86_CR4_PCIDE);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/* Jump to the identity-mapped low memory code */
|
|
/* Jump to the identity-mapped low memory code */
|