lkml.org 
[lkml]   [2022]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6.0 733/862] drm/amd/display: fix overflow on MIN_I64 definition
    Date
    From: David Gow <davidgow@google.com>

    [ Upstream commit 6ae0632d17759852c07e2d1e0a31c728eb6ba246 ]

    The definition of MIN_I64 in bw_fixed.c can cause gcc to whinge about
    integer overflow, because it is treated as a positive value, which is
    then negated. The temporary positive value is not necessarily
    representable.

    This causes the following warning:
    ../drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/bw_fixed.c:30:19:
    warning: integer overflow in expression ‘-9223372036854775808’ of type
    ‘long long int’ results in ‘-9223372036854775808’ [-Woverflow]
    30 | (int64_t)(-(1LL << 63))
    | ^

    Writing out (-MAX_I64 - 1) works instead.

    Signed-off-by: David Gow <davidgow@google.com>
    Signed-off-by: Tales Aparecida <tales.aparecida@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/amd/display/dc/dml/calcs/bw_fixed.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/gpu/drm/amd/display/dc/dml/calcs/bw_fixed.c b/drivers/gpu/drm/amd/display/dc/dml/calcs/bw_fixed.c
    index 6ca288fb5fb9..2d46bc527b21 100644
    --- a/drivers/gpu/drm/amd/display/dc/dml/calcs/bw_fixed.c
    +++ b/drivers/gpu/drm/amd/display/dc/dml/calcs/bw_fixed.c
    @@ -26,12 +26,12 @@
    #include "bw_fixed.h"


    -#define MIN_I64 \
    - (int64_t)(-(1LL << 63))
    -
    #define MAX_I64 \
    (int64_t)((1ULL << 63) - 1)

    +#define MIN_I64 \
    + (-MAX_I64 - 1)
    +
    #define FRACTIONAL_PART_MASK \
    ((1ULL << BW_FIXED_BITS_PER_FRACTIONAL_PART) - 1)

    --
    2.35.1


    \
     
     \ /
      Last update: 2022-10-19 11:33    [W:4.188 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site