[PATCH] ARM: keystone: fix integer overflow warning

Nathan Chancellor nathan at kernel.org
Tue Mar 23 18:24:36 GMT 2021


On Tue, Mar 23, 2021 at 02:18:05PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd at arndb.de>
> 
> clang warns about an impossible condition when building with 32-bit
> phys_addr_t:
> 
> arch/arm/mach-keystone/keystone.c:79:16: error: result of comparison of constant 51539607551 with expression of type 'phys_addr_t' (aka 'unsigned int') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
>             mem_end   > KEYSTONE_HIGH_PHYS_END) {
>             ~~~~~~~   ^ ~~~~~~~~~~~~~~~~~~~~~~
> arch/arm/mach-keystone/keystone.c:78:16: error: result of comparison of constant 34359738368 with expression of type 'phys_addr_t' (aka 'unsigned int') is always true [-Werror,-Wtautological-constant-out-of-range-compare]
>         if (mem_start < KEYSTONE_HIGH_PHYS_START ||
>             ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Change the temporary variable to a fixed-size u64 to avoid the warning.
> 
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>

Reviewed-by: Nathan Chancellor <nathan at kernel.org>

> ---
>  arch/arm/mach-keystone/keystone.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-keystone/keystone.c b/arch/arm/mach-keystone/keystone.c
> index cd711bfc591f..2c647bdf8d25 100644
> --- a/arch/arm/mach-keystone/keystone.c
> +++ b/arch/arm/mach-keystone/keystone.c
> @@ -65,7 +65,7 @@ static void __init keystone_init(void)
>  static long long __init keystone_pv_fixup(void)
>  {
>  	long long offset;
> -	phys_addr_t mem_start, mem_end;
> +	u64 mem_start, mem_end;
>  
>  	mem_start = memblock_start_of_DRAM();
>  	mem_end = memblock_end_of_DRAM();
> @@ -78,7 +78,7 @@ static long long __init keystone_pv_fixup(void)
>  	if (mem_start < KEYSTONE_HIGH_PHYS_START ||
>  	    mem_end   > KEYSTONE_HIGH_PHYS_END) {
>  		pr_crit("Invalid address space for memory (%08llx-%08llx)\n",
> -		        (u64)mem_start, (u64)mem_end);
> +		        mem_start, mem_end);
>  		return 0;
>  	}
>  
> -- 
> 2.29.2
> 



More information about the linux-arm-kernel mailing list