On 19 June 2017 at 19:54, Qiuxu Zhuo <[email protected]> wrote:
> 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;
As it turns out, we never assign efi.config_table on ARM/arm64, and
this needs to be fixed, so I queued a patch in the EFI -next branch.
Could you rebase your series onto that, and make sure you add a
similar line as this one to uefi_init() in
drivers/firmware/efi/arm-init.c?
> 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,
nr_config_table is not a physical address, so please just initialize it to 0
> .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