lkml.org 
[lkml]   [2021]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 10/57] ARM: keystone: fix integer overflow warning
    Date
    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


    \
     
     \ /
      Last update: 2021-04-26 09:47    [W:2.848 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site