diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2019-12-24 18:10:15 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2019-12-25 12:49:21 +0300 |
commit | 2fcdad2a80a6d6fd0f77205108232d1adc709a84 (patch) | |
tree | 4d12a5ef34b8ad820b6d3da89a967087cf9eb843 /arch/x86/boot/compressed/eboot.c | |
parent | 14e900c7e4033d6ee3398b9f133e1716cc072401 (diff) | |
download | linux-2fcdad2a80a6d6fd0f77205108232d1adc709a84.tar.xz |
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>
Diffstat (limited to 'arch/x86/boot/compressed/eboot.c')
-rw-r--r-- | arch/x86/boot/compressed/eboot.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index 36a26d6e2af0..3a7c900b9c66 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c @@ -27,6 +27,11 @@ __pure const struct efi_config *__efi_early(void) return efi_early; } +__pure efi_system_table_t *efi_system_table(void) +{ + return sys_table; +} + #define BOOT_SERVICES(bits) \ static void setup_boot_services##bits(struct efi_config *c) \ { \ |