efi: Make efi_config_init() x86 only
authorArd Biesheuvel <ardb@kernel.org>
Mon, 20 Jan 2020 16:17:27 +0000 (17:17 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Sun, 23 Feb 2020 20:59:42 +0000 (21:59 +0100)
The efi_config_init() routine is no longer shared with ia64 so let's
move it into the x86 arch code before making further x86 specific
changes to it.

Tested-by: Tony Luck <tony.luck@intel.com> # arch/ia64
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
arch/x86/platform/efi/efi.c
drivers/firmware/efi/efi.c
include/linux/efi.h

index 5bb53da..f1033f7 100644 (file)
@@ -431,6 +431,36 @@ static int __init efi_systab_init(u64 phys)
        return 0;
 }
 
+static int __init efi_config_init(efi_config_table_type_t *arch_tables)
+{
+       void *config_tables;
+       int sz, ret;
+
+       if (efi.systab->nr_tables == 0)
+               return 0;
+
+       if (efi_enabled(EFI_64BIT))
+               sz = sizeof(efi_config_table_64_t);
+       else
+               sz = sizeof(efi_config_table_32_t);
+
+       /*
+        * Let's see what config tables the firmware passed to us.
+        */
+       config_tables = early_memremap(efi.systab->tables,
+                                      efi.systab->nr_tables * sz);
+       if (config_tables == NULL) {
+               pr_err("Could not map Configuration table!\n");
+               return -ENOMEM;
+       }
+
+       ret = efi_config_parse_tables(config_tables, efi.systab->nr_tables, sz,
+                                     arch_tables);
+
+       early_memunmap(config_tables, efi.systab->nr_tables * sz);
+       return ret;
+}
+
 void __init efi_init(void)
 {
        if (IS_ENABLED(CONFIG_X86_32) &&
index 80fe004..2bfd6c0 100644 (file)
@@ -601,37 +601,6 @@ int __init efi_config_parse_tables(void *config_tables, int count, int sz,
        return 0;
 }
 
-int __init efi_config_init(efi_config_table_type_t *arch_tables)
-{
-       void *config_tables;
-       int sz, ret;
-
-       if (efi.systab->nr_tables == 0)
-               return 0;
-
-       if (efi_enabled(EFI_64BIT))
-               sz = sizeof(efi_config_table_64_t);
-       else
-               sz = sizeof(efi_config_table_32_t);
-
-       /*
-        * Let's see what config tables the firmware passed to us.
-        */
-       config_tables = early_memremap(efi.systab->tables,
-                                      efi.systab->nr_tables * sz);
-       if (config_tables == NULL) {
-               pr_err("Could not map Configuration table!\n");
-               return -ENOMEM;
-       }
-
-       ret = efi_config_parse_tables(config_tables, efi.systab->nr_tables, sz,
-                                     arch_tables);
-
-       early_memunmap(config_tables, efi.systab->nr_tables * sz);
-       return ret;
-}
-
-
 int __init efi_systab_check_header(const efi_table_hdr_t *systab_hdr,
                                   int min_major_version)
 {
index 287510e..d61c25f 100644 (file)
@@ -608,7 +608,6 @@ extern int __init efi_memmap_split_count(efi_memory_desc_t *md,
 extern void __init efi_memmap_insert(struct efi_memory_map *old_memmap,
                                     void *buf, struct efi_mem_range *mem);
 
-extern int efi_config_init(efi_config_table_type_t *arch_tables);
 #ifdef CONFIG_EFI_ESRT
 extern void __init efi_esrt_init(void);
 #else