From: Ard Biesheuvel <ardb@kernel.org>
To: linux-efi@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>
Cc: Ard Biesheuvel <ardb@kernel.org>,
linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
Arvind Sankar <nivedita@alum.mit.edu>,
Borislav Petkov <bp@suse.de>,
Colin Ian King <colin.king@canonical.com>,
Gary Lin <glin@suse.com>, Jiri Slaby <jslaby@suse.cz>,
Sergey Shatunov <me@prok.pw>, Takashi Iwai <tiwai@suse.de>
Subject: [PATCH 5/9] efi/arm: Deal with ADR going out of range in efi_enter_kernel()
Date: Thu, 9 Apr 2020 15:04:30 +0200 [thread overview]
Message-ID: <20200409130434.6736-6-ardb@kernel.org> (raw)
In-Reply-To: <20200409130434.6736-1-ardb@kernel.org>
Commit
0698fac4ac2a ("efi/arm: Clean EFI stub exit code from cache instead of avoiding it")
introduced a PC-relative reference to 'call_cache_fn' into
efi_enter_kernel(), which lives way at the end of head.S. In some cases,
the ARM version of the ADR instruction does not have sufficient range,
resulting in a build error:
arch/arm/boot/compressed/head.S:1453: Error: invalid constant (fffffffffffffbe4) after fixup
ARM defines an alternative with a wider range, called ADRL, but this does
not exist for Thumb-2. At the same time, the ADR instruction in Thumb-2
has a wider range, and so it does not suffer from the same issue.
So let's switch to ADRL for ARM builds, and keep the ADR for Thumb-2 builds.
Reported-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
---
arch/arm/boot/compressed/head.S | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 04f77214f050..61e6ee3ba75f 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -1454,7 +1454,8 @@ ENTRY(efi_enter_kernel)
@ running beyond the PoU, and so calling cache_off below from
@ inside the PE/COFF loader allocated region is unsafe unless
@ we explicitly clean it to the PoC.
- adr r0, call_cache_fn @ region of code we will
+ ARM( adrl r0, call_cache_fn )
+ THUMB( adr r0, call_cache_fn ) @ region of code we will
adr r1, 0f @ run with MMU off
bl cache_clean_flush
bl cache_off
--
2.17.1
next prev parent reply other threads:[~2020-04-09 13:05 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-09 13:04 [GIT PULL 0/9] EFI fixes for v5.7-rc Ard Biesheuvel
2020-04-09 13:04 ` [PATCH 1/9] efi/cper: Use scnprintf() for avoiding potential buffer overflow Ard Biesheuvel
2020-04-09 13:04 ` [PATCH 2/9] efi/libstub/x86: remove redundant assignment to pointer hdr Ard Biesheuvel
2020-04-09 13:04 ` [PATCH 3/9] efi/x86: Move efi stub globals from .bss to .data Ard Biesheuvel
2020-04-09 20:05 ` Brian Gerst
2020-04-09 20:53 ` Brian Gerst
2020-04-09 21:08 ` Arvind Sankar
2020-04-10 8:20 ` Ard Biesheuvel
2020-04-10 15:16 ` Arvind Sankar
2020-04-10 16:03 ` Ard Biesheuvel
2020-04-10 18:01 ` Arvind Sankar
2020-04-10 18:03 ` Ard Biesheuvel
2020-04-10 19:03 ` Arvind Sankar
2020-04-11 1:03 ` Arvind Sankar
2020-04-09 13:04 ` [PATCH 4/9] efi/x86: Always relocate the kernel for EFI handover entry Ard Biesheuvel
2020-04-09 13:04 ` Ard Biesheuvel [this message]
2020-04-14 8:20 ` [tip: efi/urgent] efi/arm: Deal with ADR going out of range in efi_enter_kernel() tip-bot2 for Ard Biesheuvel
2020-04-09 13:04 ` [PATCH 6/9] Documentation: efi/x86: clarify EFI handover protocol and its requirements Ard Biesheuvel
2020-04-14 8:20 ` [tip: efi/urgent] Documentation/x86, efi/x86: Clarify " tip-bot2 for Ard Biesheuvel
2020-04-09 13:04 ` [PATCH 7/9] efi/libstub/file: merge filename buffers to reduce stack usage Ard Biesheuvel
2020-04-14 8:20 ` [tip: efi/urgent] efi/libstub/file: Merge file name " tip-bot2 for Ard Biesheuvel
2020-04-09 13:04 ` [PATCH 8/9] efi/x86: Fix the deletion of variables in mixed mode Ard Biesheuvel
2020-04-09 13:04 ` [PATCH 9/9] efi/x86: Don't remap text<->rodata gap read-only for " Ard Biesheuvel
2020-04-14 8:20 ` [tip: efi/urgent] " tip-bot2 for Ard Biesheuvel
2020-04-09 19:01 ` [GIT PULL 0/9] EFI fixes for v5.7-rc Theodore Y. Ts'o
2020-04-09 19:04 ` Ard Biesheuvel
2020-04-09 20:16 ` Theodore Y. Ts'o
2020-04-09 21:29 ` Ard Biesheuvel
2020-04-09 23:57 ` Theodore Y. Ts'o
2020-04-10 7:08 ` Ard Biesheuvel
2020-04-10 13:54 ` Dave Young
2020-04-10 13:54 ` Dave Young
2020-04-11 19:43 ` Theodore Y. Ts'o
2020-04-11 19:43 ` Theodore Y. Ts'o
2020-04-12 3:51 ` Dave Young
2020-04-12 3:51 ` Dave Young
2020-04-13 14:07 ` David Howells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200409130434.6736-6-ardb@kernel.org \
--to=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=bp@suse.de \
--cc=colin.king@canonical.com \
--cc=glin@suse.com \
--cc=jslaby@suse.cz \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=me@prok.pw \
--cc=mingo@kernel.org \
--cc=nivedita@alum.mit.edu \
--cc=tglx@linutronix.de \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.