On Tue, 7 Jan 2020 at 14:55, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > This series performs GOT relocation before calling into C code for the > EFI stub. While the stub does not currently require GOT relocation, it's > quite easy to introduce code that will use the GOT on old toolchains, > but not recent ones, which can lead to unexpected issues. > > This is based on > https://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git/log/?h=next > > with commit 4169bb99cd70 ("efi/libstub/x86: use mandatory 16-byte stack > alignment in mixed mode") reverted, as it caused a crash in mixed mode. > Hi Arvind, I appreciate the effort, but I really don't think this is a good idea. A GOT is completely pointless in bare metal code, and fortunately, modern toolchains make it easier to suppress GOT entries from being emitted. So instead of adding back asm code that I just removed, I think it would be better to investigate whether we can get rid of the GOT entirely. > Arvind Sankar (3): > x86/boot/compressed/64: Make adjust_got easier to use repeatedly > x86/boot/compressed/32: Allow adjust_got to be called repeatedly > x86/boot: Perform GOT relocation before calling EFI stub > > arch/x86/boot/compressed/eboot.c | 4 +- > arch/x86/boot/compressed/head_32.S | 65 +++++++++++++++++++++---- > arch/x86/boot/compressed/head_64.S | 76 +++++++++++++++++------------- > 3 files changed, 99 insertions(+), 46 deletions(-) > > -- > 2.24.1 >