efi: Move arch_tables check to caller
authorArd Biesheuvel <ardb@kernel.org>
Thu, 26 Mar 2020 08:34:35 +0000 (09:34 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Fri, 24 Apr 2020 12:52:16 +0000 (14:52 +0200)
Instead of making match_config_table() test its table_types pointer for
NULL-ness, omit the call entirely if no arch_tables pointer was provided
to efi_config_parse_tables().

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/efi.c

index e49c0b6db988c30272bdccc91efe4acbd20150b0..48d0188936c3a7911635deee4499ec7a8a9b38df 100644 (file)
@@ -525,15 +525,13 @@ static __init int match_config_table(const efi_guid_t *guid,
 {
        int i;
 
-       if (table_types) {
-               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[0])
-                                       pr_cont(" %s=0x%lx ",
-                                               table_types[i].name, table);
-                               return 1;
-                       }
+       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[0])
+                               pr_cont("%s=0x%lx ",
+                                       table_types[i].name, table);
+                       return 1;
                }
        }
 
@@ -570,7 +568,7 @@ int __init efi_config_parse_tables(const efi_config_table_t *config_tables,
                        table = tbl32[i].table;
                }
 
-               if (!match_config_table(guid, table, common_tables))
+               if (!match_config_table(guid, table, common_tables) && arch_tables)
                        match_config_table(guid, table, arch_tables);
        }
        pr_cont("\n");