Subject: Coverity: intel_get_frame_time_us(): Integer handling issues

From: coverity-bot <[email-masked]>
Date: Mon, 28 Oct 2019 16:03:28 -0700

Hello!

This is an experimental automated report about issues detected by Coverity
from a scan of next-20191025 as part of the linux-next weekly scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified
lines of code (noted below) that were touched by recent commits:

1c4d821db919 ("drm/i915/tgl: Switch between dc3co and dc5 based on display idleness")

Coverity reported the following:

*** CID 1487370:  Integer handling issues  (DIVIDE_BY_ZERO)
/drivers/gpu/drm/i915/display/intel_psr.c: 542 in intel_get_frame_time_us()
536
537     static u32 intel_get_frame_time_us(const struct intel_crtc_state *cstate)
538     {
539     	if (!cstate || !cstate->base.active)
540     		return 0;
541
vvv     CID 1487370:  Integer handling issues  (DIVIDE_BY_ZERO)
vvv     In expression "(1000000 + drm_mode_vrefresh(&cstate->base.adjusted_mode) - 1) / drm_mode_vrefresh(&cstate->base.adjusted_mode)", division by expression "drm_mode_vrefresh(&cstate->base.adjusted_mode)" which may be zero has undefined behavior.
542     	return DIV_ROUND_UP(1000 * 1000,
543     			    drm_mode_vrefresh(&cstate->base.adjusted_mode));
544     }
545
546     static void psr2_program_idle_frames(struct drm_i915_private *dev_priv,
547     				     u32 idle_frames)

If this is a false positive, please let us know so we can mark it as
such, or teach the Coverity rules to be smarter. If not, please make
sure fixes get into linux-next. :) For patches fixing this, please
include:

Reported-by: coverity-bot <[email-masked]>
Addresses-Coverity-ID: 1487370 ("Integer handling issues")
Fixes: 1c4d821db919 ("drm/i915/tgl: Switch between dc3co and dc5 based on display idleness")

Thanks for your attention!

-- 
Coverity-bot