[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