Message ID | 20210323131814.2751750-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Queued, archived |
Headers | show |
Series | ARM: keystone: fix integer overflow warning | expand |
> On Mar 23, 2021, at 6:18 AM, Arnd Bergmann <arnd@kernel.org> wrote: > > From: Arnd Bergmann <arnd@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@arndb.de> > — Looks fine to me. Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
On Tue, Mar 23, 2021 at 02:18:05PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@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@arndb.de> Reviewed-by: Nathan Chancellor <nathan@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 >
From: Arnd Bergmann <arnd@arndb.de> On Tue, 23 Mar 2021 14:18:05 +0100, Arnd Bergmann wrote: > 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 || > ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~ > > [...] Applied to arm/fixes [1/1] ARM: keystone: fix integer overflow warning commit: 04e18e1cc319f453a6d752d4553bb3f29fde5f76 Arnd
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; }