x86, efi: Flush TLBs after *every* EFI call
Not-signed-off-by: Matt Fleming <matt.fleming@intel.com>
diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
index ddb0174..55569b8 100644
--- a/arch/x86/platform/efi/efi_64.c
+++ b/arch/x86/platform/efi/efi_64.c
@@ -71,6 +71,7 @@
void efi_call_virt_epilog(unsigned long saved)
{
write_cr3(saved);
+ flush_tlb_all();
}
void __init efi_call_phys_prelog(void)
@@ -91,8 +92,8 @@
* After the lock is released, the original page table is restored.
*/
set_pgd(pgd_offset_k(0x0UL), save_pgd);
- __flush_tlb_all();
local_irq_restore(efi_flags);
+ flush_tlb_all();
early_code_mapping_set_exec(0);
}