]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/vrr: require valid min/max vfreq for VRR
authorJani Nikula <jani.nikula@intel.com>
Thu, 25 Jun 2026 13:10:40 +0000 (16:10 +0300)
committerJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Wed, 1 Jul 2026 06:12:30 +0000 (09:12 +0300)
Ensure the EDID provided min/max vfreq are valid. Most scenarios are
already covered (by coincidence) through the checks in
intel_vrr_is_capable() and intel_vrr_is_in_range(), but be more explicit
about it. At worst, a zero min_vfreq could lead to a division by zero in
intel_vrr_compute_vmax().

Discovered using AI-assisted static analysis confirmed by Intel Product
Security.

Reported-by: Martin Hodo <martin.hodo@intel.com>
Fixes: 117cd09ba528 ("drm/i915/display/dp: Compute VRR state in atomic_check")
Cc: stable@vger.kernel.org # v5.12+
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Link: https://patch.msgid.link/20260625131040.1051272-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
(cherry picked from commit 1765cf59f517b02f3b0591fe5120930d08bddeb6)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/display/intel_vrr.c

index e03b5daac5be011b6eddd7bb5b0a1efd09d46a10..aa587be908f157b5cd980f8cb48f713db21225c2 100644 (file)
@@ -74,6 +74,10 @@ bool intel_vrr_is_capable(struct intel_connector *connector)
                return false;
        }
 
+       if (!info->monitor_range.min_vfreq || !info->monitor_range.max_vfreq ||
+           info->monitor_range.min_vfreq > info->monitor_range.max_vfreq)
+               return false;
+
        return info->monitor_range.max_vfreq - info->monitor_range.min_vfreq > 10;
 }