The 'nr_config_table' and 'config_table' (alreay in efi structure)
in efi structure provide a way for some driver(e.g. capsule-pstore
goes through the configuration table to extract crash capsules to
aid in debugging) iterates over the EFI configuration table array.

Signed-off-by: Qiuxu Zhuo <[email protected]>
---
 arch/x86/platform/efi/efi.c | 1 +
 drivers/firmware/efi/efi.c  | 1 +
 include/linux/efi.h         | 1 +
 3 files changed, 3 insertions(+)

diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 7e76a4d..bcda1b9 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -498,6 +498,7 @@ void __init efi_init(void)
                return;
 
        efi.config_table = (unsigned long)efi.systab->tables;
+       efi.nr_config_table = (unsigned long)efi.systab->nr_tables;
        efi.fw_vendor    = (unsigned long)efi.systab->fw_vendor;
        efi.runtime      = (unsigned long)efi.systab->runtime;
 
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index b372aad..b511197 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -48,6 +48,7 @@ struct efi __read_mostly efi = {
        .fw_vendor              = EFI_INVALID_TABLE_ADDR,
        .runtime                = EFI_INVALID_TABLE_ADDR,
        .config_table           = EFI_INVALID_TABLE_ADDR,
+       .nr_config_table        = EFI_INVALID_TABLE_ADDR,
        .esrt                   = EFI_INVALID_TABLE_ADDR,
        .properties_table       = EFI_INVALID_TABLE_ADDR,
        .mem_attr_table         = EFI_INVALID_TABLE_ADDR,
diff --git a/include/linux/efi.h b/include/linux/efi.h
index ec36f42..bd5ff8f 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -892,6 +892,7 @@ extern struct efi {
        unsigned long fw_vendor;        /* fw_vendor */
        unsigned long runtime;          /* runtime table */
        unsigned long config_table;     /* config tables */
+       unsigned long nr_config_table;
        unsigned long esrt;             /* ESRT table */
        unsigned long properties_table; /* properties table */
        unsigned long mem_attr_table;   /* memory attributes table */
-- 
2.9.0.GIT

--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to