drm/pl111: Use 64-bit arithmetic instead of 32-bit
Subsystems (3)
PATCH 1/1 drm/pl111: Use 64-bit arithmetic instead of 32-bit
Add suffix UL to constant 1000 in order to give the compiler complete information about the proper arithmetic to use.
Notice that such constant is used in a context that expects an expression of type u64 (64 bits, unsigned) and the following expression is currently being evaluated using 32-bit arithmetic:
mode->clock * 1000
Addresses-Coverity-ID: 1466139 ("Unintentional integer overflow")
--- drivers/gpu/drm/pl111/pl111_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/gpu/drm/pl111/pl111_display.c +1 -1
@@ -63,7 +63,7 @@ pl111_mode_valid(struct drm_crtc *crtc,* We use the pixelclock to also account for interlaced modes, the * resulting bandwidth is in bytes per second. */ - bw = mode->clock *1000 ;/* In Hz */ + bw = mode->clock *1000UL ;/* In Hz */ bw = bw * mode->hdisplay * mode->vdisplay * cpp; bw =div_u64 (bw, mode->htotal * mode->vtotal);
Signature · 1 line
2.7.4
Hi,
Please, ignore this. I should have used ULL instead of UL.
I'll send v2 shortly.
Thanks
--
Gustavo
Quoted 29 lines · Gustavo A. R. Silva
Add suffix UL to constant 1000 in order to give the compiler complete information about the proper arithmetic to use.
Notice that such constant is used in a context that expects an expression of type u64 (64 bits, unsigned) and the following expression is currently being evaluated using 32-bit arithmetic:
mode->clock* 1000Addresses-Coverity-ID: 1466139 ("Unintentional integer overflow")
Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/gpu/drm/pl111/pl111_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/gpu/drm/pl111/pl111_display.c +1
-1@@ -63,7 +63,7 @@ pl111_mode_valid(struct drm_crtc *crtc,* We use the pixelclock to also account for interlaced modes, the * resulting bandwidth is in bytes per second. */ - bw = mode->clock *1000 ;/* In Hz */ + bw = mode->clock *1000UL ;/* In Hz */ bw = bw * mode->hdisplay * mode->vdisplay * cpp; bw =div_u64 (bw, mode->htotal * mode->vtotal);