Hello Boris Does this version looks good to you? Only mapping once in print_efi_memmap.. BTW, forgot to remove 'Re:' in subject. Please let me know if there's any other issues or need I resend the series. Most changes vs previous version are below: > diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c > index b1fff8e..5438083 100644 > --- a/arch/x86/platform/efi/efi.c > +++ b/arch/x86/platform/efi/efi.c > @@ -78,6 +78,8 @@ static __initdata efi_config_table_type_t arch_tables[] = { > > static void *efi_runtime_map; > static int nr_efi_runtime_map; > +u64 efi_setup; /* efi setup_data physical address */ > +u32 efi_data_len; /* efi setup_data payload length */ > [snip] > + > +static void get_nr_runtime_map(void) > +{ > + if (!efi_setup) > + return; > + > + nr_efi_runtime_map = (efi_data_len - sizeof(struct efi_setup_data)) / > + sizeof(efi_memory_desc_t); > +} > + > void __init efi_init(void) > { > efi_char16_t *c16; > @@ -638,6 +719,7 @@ void __init efi_init(void) > int i = 0; > void *tmp; > > + get_nr_runtime_map(); > #ifdef CONFIG_X86_32 > if (boot_params.efi_info.efi_systab_hi || > boot_params.efi_info.efi_memmap_hi) { > @@ -676,6 +758,9 @@ void __init efi_init(void) > efi.systab->hdr.revision >> 16, [snip] > > /* > diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c > index 7b3ec6e..249b183 100644 > --- a/arch/x86/platform/efi/efi_32.c > +++ b/arch/x86/platform/efi/efi_32.c > @@ -48,6 +48,7 @@ void __init efi_map_region(efi_memory_desc_t *md) > } > > void __init efi_map_region_fixed(efi_memory_desc_t *md) {} > +void __init parse_efi_setup(u64 phys_addr, u32 data_len) {} > > void efi_call_phys_prelog(void) > { > diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c > index ff08cb1..324b651 100644 > --- a/arch/x86/platform/efi/efi_64.c > +++ b/arch/x86/platform/efi/efi_64.c > @@ -228,3 +228,9 @@ void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size, > > return (void __iomem *)__va(phys_addr); > } > + > +void __init parse_efi_setup(u64 phys_addr, u32 data_len) > +{ > + efi_setup = phys_addr + sizeof(struct setup_data); > + efi_data_len = data_len - sizeof(struct setup_data); > +} > -- > 1.8.3.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html