Re: [PATCH] efi: ARM: avoid warning about phys_addr_t cast

From: Ard Biesheuvel
Date: Mon Apr 18 2016 - 04:36:30 EST


On 18 April 2016 at 10:34, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> memblock_remove() takes a phys_addr_t, which may be narrower than 64 bits,
> causing a harmless warning:
>
> drivers/firmware/efi/arm-init.c: In function 'reserve_regions':
> include/linux/kernel.h:29:20: error: large integer implicitly truncated to unsigned type [-Werror=overflow]
> #define ULLONG_MAX (~0ULL)
> ^
> drivers/firmware/efi/arm-init.c:152:21: note: in expansion of macro 'ULLONG_MAX'
> memblock_remove(0, ULLONG_MAX);
>
> This adds an explicit typecast to avoid the warning
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> Fixes: 500899c2cc3e ("efi: ARM/arm64: ignore DT memory nodes instead of removing them")

Acked-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>

> ---
> drivers/firmware/efi/arm-init.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/efi/arm-init.c b/drivers/firmware/efi/arm-init.c
> index 434dd6065935..fac567c3b66a 100644
> --- a/drivers/firmware/efi/arm-init.c
> +++ b/drivers/firmware/efi/arm-init.c
> @@ -149,7 +149,7 @@ static __init void reserve_regions(void)
> * uses its own memory map instead.
> */
> memblock_dump_all();
> - memblock_remove(0, ULLONG_MAX);
> + memblock_remove(0, (phys_addr_t)ULLONG_MAX);
>
> for_each_efi_memory_desc(&memmap, md) {
> paddr = md->phys_addr;
> --
> 2.7.0
>