drm/i915/dp: Fix potential infinite loop in 128b/132b SST
authorJani Nikula <jani.nikula@intel.com>
Tue, 4 Feb 2025 15:49:25 +0000 (17:49 +0200)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 5 Feb 2025 19:42:42 +0000 (14:42 -0500)
Passing 0 as the step only works when there are other reasons to break
out of the BPP loop in intel_dp_mtp_tu_compute_config(). Otherwise, an
infinite loop might occur. Fix it by explicitly checking for 0 step.

Fixes: ef0a0757bbea ("drm/i915/dp: compute config for 128b/132b SST w/o DSC")
Reported-by: Imre Deak <imre.deak@intel.com>
Closes: https://lore.kernel.org/r/Z6I0knh2Kt5T0JrT@ideak-desk.fi.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250204154925.3001781-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
(cherry picked from commit a40e718d34d3d02c781c295466b013415f68c4f1)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/display/intel_dp_mst.c

index 0c44fc7dd86cef471df5787e8284d9313b98b215..a65cf97ad12df5c2a2729a5126fdbe75be479b83 100644 (file)
@@ -341,6 +341,10 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
 
                        break;
                }
+
+               /* Allow using zero step to indicate one try */
+               if (!step)
+                       break;
        }
 
        if (slots < 0) {