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 51961d2060695da90ee968b52bfb96b1c62062ef..17f1927465710a382190d0e61aa73d2d83dfdf38 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;
 }