diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2020-03-29 10:05:43 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2020-03-29 12:08:18 +0200 |
commit | c2136dceba9a329e997ccce3277d2084e21a8a04 (patch) | |
tree | a560bcf2ee5d19f1f5cf2be1f920af77f163e05b /drivers/gpio/gpio-vr41xx.c | |
parent | d5528d5e91041e68e8eab9792ce627705a0ed273 (diff) | |
download | linux-c2136dceba9a329e997ccce3277d2084e21a8a04.tar.bz2 |
efi/libstub/arm64: Avoid image_base value from efi_loaded_image
Commit:
9f9223778ef3 ("efi/libstub/arm: Make efi_entry() an ordinary PE/COFF entrypoint")
did some code refactoring to get rid of the EFI entry point assembler
code, and in the process, it got rid of the assignment of image_addr
to the value of _text. Instead, it switched to using the image_base
field of the efi_loaded_image struct provided by UEFI, which should
contain the same value.
However, Michael reports that this is not the case: older GRUB builds
corrupt this value in some way, and since we can easily switch back to
referring to _text to discover this value, let's simply do that.
While at it, fix another issue in commit 9f9223778ef3, which may result
in the unassigned image_addr to be misidentified as the preferred load
offset of the kernel, which is unlikely but will cause a boot crash if
it does occur.
Finally, let's add a warning if the _text vs. image_base discrepancy is
detected, so we can tell more easily how widespread this issue actually
is.
Reported-by: Michael Kelley <mikelley@microsoft.com>
Tested-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-efi@vger.kernel.org
Diffstat (limited to 'drivers/gpio/gpio-vr41xx.c')
0 files changed, 0 insertions, 0 deletions