efi_loader: Fix efi_install_configuration_table
authorAlexander Graf <agraf@suse.de>
Thu, 18 Aug 2016 23:23:30 +0000 (01:23 +0200)
committerAlexander Graf <agraf@suse.de>
Wed, 19 Oct 2016 07:01:52 +0000 (09:01 +0200)
So far we were only installing the FDT table and didn't have space
to store any other. Hence nobody realized that our efi table allocation
was broken in that it didn't set the indicator for the number of tables
plus one.

This patch fixes it, allowing code to allocate new efi tables.

Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
lib/efi_loader/efi_boottime.c

index 51961d2..17f1927 100644 (file)
@@ -395,7 +395,7 @@ efi_status_t efi_install_configuration_table(const efi_guid_t *guid, void *table
        /* Add a new entry */
        memcpy(&efi_conf_table[i].guid, guid, sizeof(*guid));
        efi_conf_table[i].table = table;
-       systab.nr_tables = i;
+       systab.nr_tables = i + 1;
 
        return EFI_SUCCESS;
 }