Messages in this thread Patch in this message | | | From | Thomas Gleixner <> | Subject | [GIT pull] x86/urgent for v6.5-rc1 | Date | Sat, 1 Jul 2023 20:08:20 +0200 (CEST) |
| |
Linus,
please pull the latest x86/urgent branch from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-urgent-2023-07-01
up to: 0303c9729afc: x86/efi: Make efi_set_virtual_address_map IBT safe
A single regression fix for x86:
Moving the invocation of arch_cpu_finalize_init() earlier in the boot process caused a boot regression on IBT enabled system.
The root cause is not the move of arch_cpu_finalize_init() itself. The system fails to boot because the subsequent efi_enter_virtual_mode() code has a non-IBT safe EFI call inside. This was never noticed because IBT was enabled after the EFI initialization.
Switching the EFI call to use the IBT safe wrapper cures the problem.
Thanks,
tglx
------------------> Thomas Gleixner (1): x86/efi: Make efi_set_virtual_address_map IBT safe
arch/x86/platform/efi/efi_64.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c index 232acf418cfb..77f7ac3668cb 100644 --- a/arch/x86/platform/efi/efi_64.c +++ b/arch/x86/platform/efi/efi_64.c @@ -853,9 +853,9 @@ efi_set_virtual_address_map(unsigned long memory_map_size, /* Disable interrupts around EFI calls: */ local_irq_save(flags); - status = efi_call(efi.runtime->set_virtual_address_map, - memory_map_size, descriptor_size, - descriptor_version, virtual_map); + status = arch_efi_call_virt(efi.runtime, set_virtual_address_map, + memory_map_size, descriptor_size, + descriptor_version, virtual_map); local_irq_restore(flags); efi_fpu_end();
| |