]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
drm/amd/display/dc/dce: Fix multiple potential integer overflows
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Wed, 4 Jul 2018 13:22:11 +0000 (08:22 -0500)
committerJuerg Haefliger <juergh@canonical.com>
Wed, 24 Jul 2019 01:51:37 +0000 (19:51 -0600)
commitccb49cb80ed611fc8c6afb7bde71305f12a505af
treed2dd9f1607440f45876f2a37e23b39ad7ed274c7
parent82f65beafd01cf68ecdbcc457c8f6aba2c4f7401
drm/amd/display/dc/dce: Fix multiple potential integer overflows

BugLink: https://bugs.launchpad.net/bugs/1836287
[ Upstream commit 6f3472a993e7cb63cde5d818dcabc8e42fc03744 ]

Add suffix ULL to constant 5 and cast variables target_pix_clk_khz and
feedback_divider to uint64_t in order to avoid multiple potential integer
overflows and give the compiler complete information about the proper
arithmetic to use.

Notice that such constant and variables are used in contexts that
expect expressions of type uint64_t (64 bits, unsigned). The current
casts to uint64_t effectively apply to each expression as a whole,
but they do not prevent them from being evaluated using 32-bit
arithmetic instead of 64-bit arithmetic.

Also, once the expressions are properly evaluated using 64-bit
arithmentic, there is no need for the parentheses that enclose
them.

Addresses-Coverity-ID: 1460245 ("Unintentional integer overflow")
Addresses-Coverity-ID: 1460286 ("Unintentional integer overflow")
Addresses-Coverity-ID: 1460401 ("Unintentional integer overflow")
Fixes: 4562236b3bc0 ("drm/amd/dc: Add dc display driver (v2)")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c