lkml.org 
[lkml]   [2021]   [Sep]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.13 193/380] drm/bridge: nwl-dsi: Avoid potential multiplication overflow on 32-bit
    Date
    From: Geert Uytterhoeven <geert+renesas@glider.be>

    [ Upstream commit 47956bc86ee4e8530cac386a04f62a6095f7afbe ]

    As nwl_dsi.lanes is u32, and NSEC_PER_SEC is 1000000000L, the second
    multiplication in

    dsi->lanes * 8 * NSEC_PER_SEC

    will overflow on a 32-bit platform. Fix this by making the constant
    unsigned long long, forcing 64-bit arithmetic.

    As iMX8 is arm64, this driver is currently used on 64-bit platforms
    only, where long is 64-bit, so this cannot happen. But the issue will
    start to happen when the driver is reused for a 32-bit SoC (e.g.
    i.MX7ULP), or when code is copied for a new driver.

    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/ebb82941a86b4e35c4fcfb1ef5a5cfad7c1fceab.1626255956.git.geert+renesas@glider.be
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/bridge/nwl-dsi.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/gpu/drm/bridge/nwl-dsi.c b/drivers/gpu/drm/bridge/nwl-dsi.c
    index c65ca860712d..6cac2e58cd15 100644
    --- a/drivers/gpu/drm/bridge/nwl-dsi.c
    +++ b/drivers/gpu/drm/bridge/nwl-dsi.c
    @@ -196,7 +196,7 @@ static u32 ps2bc(struct nwl_dsi *dsi, unsigned long long ps)
    u32 bpp = mipi_dsi_pixel_format_to_bpp(dsi->format);

    return DIV64_U64_ROUND_UP(ps * dsi->mode.clock * bpp,
    - dsi->lanes * 8 * NSEC_PER_SEC);
    + dsi->lanes * 8ULL * NSEC_PER_SEC);
    }

    /*
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-16 18:50    [W:3.723 / U:0.232 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site