Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

arm64/efi: Don't fail check current_in_efi() if preemptible

As EFI runtime services can now be run without disabling preemption remove
the check for non preemptible in current_in_efi(). Without this change,
firmware errors that were previously recovered from by
__efi_runtime_kernel_fixup_exception() will lead to a kernel oops.

Fixes: a5baf582f4c0 ("arm64/efi: Call EFI runtime services without disabling preemption")
Signed-off-by: Ben Horgan <ben.horgan@arm.com>
Reviewed-by: Yeoreum Yun <yeoreum.yun@arm.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Richard Lyu <richard.lyu@suse.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>

authored by

Ben Horgan and committed by
Catalin Marinas
dd4d71f5 f4ea8e05

+1 -1
+1 -1
arch/arm64/include/asm/efi.h
··· 45 45 * switching to the EFI runtime stack. 46 46 */ 47 47 #define current_in_efi() \ 48 - (!preemptible() && efi_rt_stack_top != NULL && \ 48 + (efi_rt_stack_top != NULL && \ 49 49 on_task_stack(current, READ_ONCE(efi_rt_stack_top[-1]), 1)) 50 50 51 51 #define ARCH_EFI_IRQ_FLAGS_MASK (PSR_D_BIT | PSR_A_BIT | PSR_I_BIT | PSR_F_BIT)