diff options
author | 2020-01-22 14:40:57 +0100 | |
---|---|---|
committer | 2020-02-23 21:59:42 +0100 | |
commit | 06c0bd93434c5b9b284773f90bb054aff591d5be (patch) | |
tree | e92fb1e0a3943601561e065816450a6a5c916c6f /include/linux/efi.h | |
parent | efi: Make efi_config_init() x86 only (diff) | |
download | linux-06c0bd93434c5b9b284773f90bb054aff591d5be.tar.gz linux-06c0bd93434c5b9b284773f90bb054aff591d5be.tar.bz2 linux-06c0bd93434c5b9b284773f90bb054aff591d5be.zip |
efi: Clean up config_parse_tables()
config_parse_tables() is a jumble of pointer arithmetic, due to the
fact that on x86, we may be dealing with firmware whose native word
size differs from the kernel's.
This is not a concern on other architectures, and doesn't quite
justify the state of the code, so let's clean it up by adding a
non-x86 code path, constifying statically allocated tables and
replacing preprocessor conditionals with IS_ENABLED() checks.
Tested-by: Tony Luck <tony.luck@intel.com> # arch/ia64
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'include/linux/efi.h')
-rw-r--r-- | include/linux/efi.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/efi.h b/include/linux/efi.h index d61c25fd5824..99a7fcbe5e9b 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -613,8 +613,9 @@ extern void __init efi_esrt_init(void); #else static inline void efi_esrt_init(void) { } #endif -extern int efi_config_parse_tables(void *config_tables, int count, int sz, - efi_config_table_type_t *arch_tables); +extern int efi_config_parse_tables(const efi_config_table_t *config_tables, + int count, + const efi_config_table_type_t *arch_tables); extern int efi_systab_check_header(const efi_table_hdr_t *systab_hdr, int min_major_version); extern void efi_systab_report_header(const efi_table_hdr_t *systab_hdr, |