efi: Clean up config table description arrays
authorArd Biesheuvel <ardb@kernel.org>
Thu, 26 Mar 2020 08:24:14 +0000 (09:24 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Fri, 24 Apr 2020 12:52:16 +0000 (14:52 +0200)
Increase legibility by adding whitespace to the efi_config_table_type_t
arrays that describe which EFI config tables we look for when going over
the firmware provided list. While at it, replace the 'name' char pointer
with a char array, which is more space efficient on relocatable 64-bit
kernels, as it avoids a 8 byte pointer and the associated relocation
data (24 bytes when using RELA format)

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
arch/ia64/kernel/efi.c
arch/x86/platform/efi/efi.c
drivers/firmware/efi/arm-init.c
drivers/firmware/efi/efi.c
include/linux/efi.h

index f69f3fe..a54eacb 100644 (file)
@@ -57,12 +57,12 @@ unsigned long hcdp_phys = EFI_INVALID_TABLE_ADDR;
 unsigned long sal_systab_phys = EFI_INVALID_TABLE_ADDR;
 
 static const efi_config_table_type_t arch_tables[] __initconst = {
-       {ESI_TABLE_GUID, "ESI", &esi_phys},
-       {HCDP_TABLE_GUID, "HCDP", &hcdp_phys},
-       {MPS_TABLE_GUID, "MPS", &mps_phys},
-       {PROCESSOR_ABSTRACTION_LAYER_OVERWRITE_GUID, "PALO", &palo_phys},
-       {SAL_SYSTEM_TABLE_GUID, "SALsystab", &sal_systab_phys},
-       {NULL_GUID, NULL, 0},
+       {ESI_TABLE_GUID,                                &esi_phys,              "ESI"           },
+       {HCDP_TABLE_GUID,                               &hcdp_phys,             "HCDP"          },
+       {MPS_TABLE_GUID,                                &mps_phys,              "MPS"           },
+       {PROCESSOR_ABSTRACTION_LAYER_OVERWRITE_GUID,    &palo_phys,             "PALO"          },
+       {SAL_SYSTEM_TABLE_GUID,                         &sal_systab_phys,       "SALsystab"     },
+       {},
 };
 
 extern efi_status_t efi_call_phys (void *, ...);
index 1aae530..e966115 100644 (file)
@@ -62,12 +62,12 @@ static unsigned long efi_runtime, efi_nr_tables;
 unsigned long efi_fw_vendor, efi_config_table;
 
 static const efi_config_table_type_t arch_tables[] __initconst = {
-       {EFI_PROPERTIES_TABLE_GUID, "PROP", &prop_phys},
-       {UGA_IO_PROTOCOL_GUID, "UGA", &uga_phys},
+       {EFI_PROPERTIES_TABLE_GUID,     &prop_phys,             "PROP"          },
+       {UGA_IO_PROTOCOL_GUID,          &uga_phys,              "UGA"           },
 #ifdef CONFIG_X86_UV
-       {UV_SYSTEM_TABLE_GUID, "UVsystab", &uv_systab_phys},
+       {UV_SYSTEM_TABLE_GUID,          &uv_systab_phys,        "UVsystab"      },
 #endif
-       {NULL_GUID, NULL, NULL},
+       {},
 };
 
 static const unsigned long * const efi_tables[] = {
index 9e5e62f..c697e70 100644 (file)
@@ -54,8 +54,8 @@ static phys_addr_t __init efi_to_phys(unsigned long addr)
 static __initdata unsigned long screen_info_table = EFI_INVALID_TABLE_ADDR;
 
 static const efi_config_table_type_t arch_tables[] __initconst = {
-       {LINUX_EFI_ARM_SCREEN_INFO_TABLE_GUID, NULL, &screen_info_table},
-       {NULL_GUID, NULL, NULL}
+       {LINUX_EFI_ARM_SCREEN_INFO_TABLE_GUID, &screen_info_table},
+       {}
 };
 
 static void __init init_screen_info(void)
index 911a2bd..e49c0b6 100644 (file)
@@ -502,21 +502,21 @@ void __init efi_mem_reserve(phys_addr_t addr, u64 size)
 }
 
 static const efi_config_table_type_t common_tables[] __initconst = {
-       {ACPI_20_TABLE_GUID, "ACPI 2.0", &efi.acpi20},
-       {ACPI_TABLE_GUID, "ACPI", &efi.acpi},
-       {SMBIOS_TABLE_GUID, "SMBIOS", &efi.smbios},
-       {SMBIOS3_TABLE_GUID, "SMBIOS 3.0", &efi.smbios3},
-       {EFI_SYSTEM_RESOURCE_TABLE_GUID, "ESRT", &efi.esrt},
-       {EFI_MEMORY_ATTRIBUTES_TABLE_GUID, "MEMATTR", &efi_mem_attr_table},
-       {LINUX_EFI_RANDOM_SEED_TABLE_GUID, "RNG", &efi_rng_seed},
-       {LINUX_EFI_TPM_EVENT_LOG_GUID, "TPMEventLog", &efi.tpm_log},
-       {LINUX_EFI_TPM_FINAL_LOG_GUID, "TPMFinalLog", &efi.tpm_final_log},
-       {LINUX_EFI_MEMRESERVE_TABLE_GUID, "MEMRESERVE", &mem_reserve},
-       {EFI_RT_PROPERTIES_TABLE_GUID, "RTPROP", &rt_prop},
+       {ACPI_20_TABLE_GUID,                    &efi.acpi20,            "ACPI 2.0"      },
+       {ACPI_TABLE_GUID,                       &efi.acpi,              "ACPI"          },
+       {SMBIOS_TABLE_GUID,                     &efi.smbios,            "SMBIOS"        },
+       {SMBIOS3_TABLE_GUID,                    &efi.smbios3,           "SMBIOS 3.0"    },
+       {EFI_SYSTEM_RESOURCE_TABLE_GUID,        &efi.esrt,              "ESRT"          },
+       {EFI_MEMORY_ATTRIBUTES_TABLE_GUID,      &efi_mem_attr_table,    "MEMATTR"       },
+       {LINUX_EFI_RANDOM_SEED_TABLE_GUID,      &efi_rng_seed,          "RNG"           },
+       {LINUX_EFI_TPM_EVENT_LOG_GUID,          &efi.tpm_log,           "TPMEventLog"   },
+       {LINUX_EFI_TPM_FINAL_LOG_GUID,          &efi.tpm_final_log,     "TPMFinalLog"   },
+       {LINUX_EFI_MEMRESERVE_TABLE_GUID,       &mem_reserve,           "MEMRESERVE"    },
+       {EFI_RT_PROPERTIES_TABLE_GUID,          &rt_prop,               "RTPROP"        },
 #ifdef CONFIG_EFI_RCI2_TABLE
-       {DELLEMC_EFI_RCI2_TABLE_GUID, NULL, &rci2_table_phys},
+       {DELLEMC_EFI_RCI2_TABLE_GUID,           &rci2_table_phys                        },
 #endif
-       {NULL_GUID, NULL, NULL},
+       {},
 };
 
 static __init int match_config_table(const efi_guid_t *guid,
@@ -529,7 +529,7 @@ static __init int match_config_table(const efi_guid_t *guid,
                for (i = 0; efi_guidcmp(table_types[i].guid, NULL_GUID); i++) {
                        if (!efi_guidcmp(*guid, table_types[i].guid)) {
                                *(table_types[i].ptr) = table;
-                               if (table_types[i].name)
+                               if (table_types[i].name[0])
                                        pr_cont(" %s=0x%lx ",
                                                table_types[i].name, table);
                                return 1;
index 251f1f7..9b7c7ec 100644 (file)
@@ -379,8 +379,8 @@ typedef union {
 
 typedef struct {
        efi_guid_t guid;
-       const char *name;
        unsigned long *ptr;
+       const char name[16];
 } efi_config_table_type_t;
 
 #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)