Skip to content
Snippets Groups Projects
Commit d291b259 authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Greg Kroah-Hartman
Browse files

ARM: efistub: replace adrl pseudo-op with adr_l macro invocation


commit 67e3f828 upstream.

The ARM 'adrl' pseudo instruction is a bit problematic, as it does not
exist in Thumb mode, and it is not implemented by Clang either. Since
the Thumb variant has a slightly bigger range, it is sometimes necessary
to emit the 'adrl' variant in ARM mode where Thumb mode can use adr just
fine. However, that still leaves the Clang issue, which does not appear
to be supporting this any time soon.

So let's switch to the adr_l macro, which works for both ARM and Thumb,
and has unlimited range.

Reviewed-by: default avatarNicolas Pitre <nico@fluxnic.net>
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
Signed-off-by: default avatarNick Desaulniers <ndesaulniers@google.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent fd863653
No related branches found
No related tags found
No related merge requests found
...@@ -1440,8 +1440,7 @@ ENTRY(efi_enter_kernel) ...@@ -1440,8 +1440,7 @@ ENTRY(efi_enter_kernel)
mov r4, r0 @ preserve image base mov r4, r0 @ preserve image base
mov r8, r1 @ preserve DT pointer mov r8, r1 @ preserve DT pointer
ARM( adrl r0, call_cache_fn ) adr_l r0, call_cache_fn
THUMB( adr r0, call_cache_fn )
adr r1, 0f @ clean the region of code we adr r1, 0f @ clean the region of code we
bl cache_clean_flush @ may run with the MMU off bl cache_clean_flush @ may run with the MMU off
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment