| From 99902e4844f741c2ea754cc6af1e00896422ef10 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 23 Mar 2021 14:18:05 +0100 |
| Subject: ARM: keystone: fix integer overflow warning |
| |
| From: Arnd Bergmann <arnd@arndb.de> |
| |
| [ Upstream commit 844b85dda2f569943e1e018fdd63b6f7d1d6f08e ] |
| |
| 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@arndb.de> |
| Reviewed-by: Nathan Chancellor <nathan@kernel.org> |
| Acked-by: Santosh Shilimkar <ssantosh@kernel.org> |
| Link: https://lore.kernel.org/r/20210323131814.2751750-1-arnd@kernel.org' |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: Sasha Levin <sashal@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 84613abf35a3..79ff5b953431 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.30.2 |
| |