On Sat, 03 Oct, at 11:26:07PM, Matt Fleming wrote: > > Urgh, sorry about this slipping through the cracks Guenter! > > What about fixing it up with this patch? > > --- > > From 85ae872eafef767cf37a0a305266522a62b43fc2 Mon Sep 17 00:00:00 2001 > From: Matt Fleming <matt.fleming@xxxxxxxxx> > Date: Sat, 3 Oct 2015 20:44:52 +0100 > Subject: [PATCH] efi: Use the generic efi.memmap instead of 'memmap' > > Guenter reports that commit 7bf793115dd9 ("efi, x86: Rearrange > efi_mem_attributes()") breaks ia64 compilation with the following > error, > > drivers/built-in.o: In function `efi_mem_attributes': > (.text+0xde962): undefined reference to `memmap' > drivers/built-in.o: In function `efi_mem_attributes': > (.text+0xde971): undefined reference to `memmap' > > Instead of using the (rather poorly named) global variable 'memmap' > which doesn't exist on ia64, use efi.memmap which points to the > 'memmap' object on x86 and arm64 and which is NULL for ia64. > > The fact that efi.memmap is NULL for ia64 is OK because ia64 provides > its own implementation of efi_mem_attributes(). > > Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx> > Cc: Jonathan Zhang <zjzhang@xxxxxxxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: Tony Luck <tony.luck@xxxxxxxxx> > Cc: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > Signed-off-by: Matt Fleming <matt.fleming@xxxxxxxxx> > --- > drivers/firmware/efi/efi.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c > index dd153be03f56..335f4c1a1504 100644 > --- a/drivers/firmware/efi/efi.c > +++ b/drivers/firmware/efi/efi.c > @@ -647,13 +647,15 @@ char * __init efi_md_typeattr_format(char *buf, size_t size, > */ > u64 __weak efi_mem_attributes(unsigned long phys_addr) > { > + struct efi_memory_map *map; > efi_memory_desc_t *md; > void *p; > > if (!efi_enabled(EFI_MEMMAP)) > return 0; > > - for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { > + map = efi.memmap; > + for (p = map->map; p < map->map_end; p += map->desc_size) { > md = p; > if ((md->phys_addr <= phys_addr) && > (phys_addr < (md->phys_addr + tip folks, could you pick this up to fix the ia64 breakage in linux-next? -- Matt Fleming, Intel Open Source Technology Center -- 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