efi/libstub: Get rid of 'sys_table_arg' macro parameter
authorArd Biesheuvel <ardb@kernel.org>
Tue, 24 Dec 2019 15:10:15 +0000 (16:10 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 25 Dec 2019 09:49:21 +0000 (10:49 +0100)
commit2fcdad2a80a6d6fd0f77205108232d1adc709a84
tree4d12a5ef34b8ad820b6d3da89a967087cf9eb843
parent14e900c7e4033d6ee3398b9f133e1716cc072401
efi/libstub: Get rid of 'sys_table_arg' macro parameter

The efi_call macros on ARM have a dependency on a variable 'sys_table_arg'
existing in the scope of the macro instantiation. Since this variable
always points to the same data structure, let's create a global getter
for it and use that instead.

Note that the use of a global variable with external linkage is avoided,
given the problems we had in the past with early processing of the GOT
tables.

While at it, drop the redundant casts in the efi_table_attr and
efi_call_proto macros.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Cc: Arvind Sankar <nivedita@alum.mit.edu>
Cc: Borislav Petkov <bp@alien8.de>
Cc: James Morse <james.morse@arm.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: https://lkml.kernel.org/r/20191224151025.32482-16-ardb@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/arm/include/asm/efi.h
arch/arm64/include/asm/efi.h
arch/x86/boot/compressed/eboot.c
drivers/firmware/efi/libstub/arm-stub.c
drivers/firmware/efi/libstub/efistub.h
drivers/firmware/efi/libstub/gop.c