Subject: Re: linux-next: Tree for Sep 18 (build failures, up to 10/02)

From: Matt Fleming <[email-masked]>
Date: Sat, 10 Oct 2015 17:26:23 +0100

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 <[email-masked]>
> 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 <[email-masked]>
> Cc: Jonathan Zhang <[email-masked]>
> Cc: Ingo Molnar <[email-masked]>
> Cc: Tony Luck <[email-masked]>
> Cc: Ard Biesheuvel <[email-masked]>
> Signed-off-by: Matt Fleming <[email-masked]>
> ---
>  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