Message ID | 20190812000801.GA29204@embeddedor (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/komeda: Fix potential integer overflow in komeda_crtc_update_clock_ratio | expand |
On Sun, Aug 11, 2019 at 07:08:01PM -0500, Gustavo A. R. Silva wrote: > Add suffix ULL to constant 1000 in order to avoid a potential integer > overflow and give the compiler complete information about the proper > arithmetic to use. Notice that this constant is being used in a context > that expects an expression of type u64, but it's currently evaluated > using 32-bit arithmetic. > > Addresses-Coverity-ID: 1485796 ("Unintentional integer overflow") > Fixes: ed22c6d9304d ("drm/komeda: Use drm_display_mode "crtc_" prefixed hardware timings") > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> > --- > drivers/gpu/drm/arm/display/komeda/komeda_crtc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c > index fa9a4593bb37..624d257da20f 100644 > --- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c > +++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c > @@ -27,7 +27,7 @@ static void komeda_crtc_update_clock_ratio(struct komeda_crtc_state *kcrtc_st) > return; > } > > - pxlclk = kcrtc_st->base.adjusted_mode.crtc_clock * 1000; > + pxlclk = kcrtc_st->base.adjusted_mode.crtc_clock * 1000ULL; > aclk = komeda_crtc_get_aclk(kcrtc_st); > > kcrtc_st->clock_ratio = div64_u64(aclk << 32, pxlclk); Thank you for the patch. Reviewed-by: James Qian Wang (Arm Technology China) <james.qian.wang@arm.com>
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c index fa9a4593bb37..624d257da20f 100644 --- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c +++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c @@ -27,7 +27,7 @@ static void komeda_crtc_update_clock_ratio(struct komeda_crtc_state *kcrtc_st) return; } - pxlclk = kcrtc_st->base.adjusted_mode.crtc_clock * 1000; + pxlclk = kcrtc_st->base.adjusted_mode.crtc_clock * 1000ULL; aclk = komeda_crtc_get_aclk(kcrtc_st); kcrtc_st->clock_ratio = div64_u64(aclk << 32, pxlclk);
Add suffix ULL to constant 1000 in order to avoid a potential integer overflow and give the compiler complete information about the proper arithmetic to use. Notice that this constant is being used in a context that expects an expression of type u64, but it's currently evaluated using 32-bit arithmetic. Addresses-Coverity-ID: 1485796 ("Unintentional integer overflow") Fixes: ed22c6d9304d ("drm/komeda: Use drm_display_mode "crtc_" prefixed hardware timings") Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> --- drivers/gpu/drm/arm/display/komeda/komeda_crtc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)