]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/i915/mst: limit DP MST ESI service loop
authorJani Nikula <jani.nikula@intel.com>
Thu, 25 Jun 2026 14:22:04 +0000 (17:22 +0300)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 6 Jul 2026 14:26:00 +0000 (10:26 -0400)
commit005771c18c5b2c98cb4e7517661aea460990fd3f
tree194d8ce1018dd24c0f5538077e9c8934f6d8d862
parent2b56757a9a7456825eb668fde92299e01c5e2721
drm/i915/mst: limit DP MST ESI service loop

The loop in intel_dp_check_mst_status() keeps servicing interrupts
originating from the sink without bound. Add an upper bound to the new
interrupts occurring during interrupt processing to not get stuck on
potentially stuck sink devices. Use arbitrary 32 tries to clear incoming
interrupts in one go.

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

Note: The condition likely pre-dates the commit in the Fixes: tag, but
this is about as far back as a backport has any chance of
succeeding. Before that, the retry had a goto.

Reported-by: Martin Hodo <martin.hodo@intel.com>
Fixes: 3c0ec2c2d594 ("drm/i915: Flatten intel_dp_check_mst_status() a bit")
Cc: stable@vger.kernel.org # v5.8+
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Link: https://patch.msgid.link/20260625142204.1078287-1-jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
(cherry picked from commit b4ea5272133059acb493cc36599071a9e852ec2e)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/display/intel_dp.c