]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/i915/display: Fix possible overflow on tc power domain selection
authorMika Kahola <mika.kahola@intel.com>
Fri, 29 Aug 2025 10:12:26 +0000 (13:12 +0300)
committerMika Kahola <mika.kahola@intel.com>
Wed, 3 Sep 2025 06:48:57 +0000 (09:48 +0300)
There is a possibility that intel_encoder_to_tc() function
returns negative i.e. TC_PORT_NONE (-1) value which may cause
tc_port_power_domain() function to overflow. To fix this,
let's add additional check that returns invalid power domain
i.e. POWER_DOMAIN_INVALID in case tc port equals TC_PORT_NONE.

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Link: https://lore.kernel.org/r/20250829101226.4085757-1-mika.kahola@intel.com
drivers/gpu/drm/i915/display/intel_tc.c

index 583fed5a386db8fa9b6681c78c73614d15bcf562..23745fc99d353c388403f36fd4cc8efb248c0266 100644 (file)
@@ -249,6 +249,9 @@ tc_port_power_domain(struct intel_tc_port *tc)
 {
        enum tc_port tc_port = intel_encoder_to_tc(&tc->dig_port->base);
 
+       if (tc_port == TC_PORT_NONE)
+               return POWER_DOMAIN_INVALID;
+
        return POWER_DOMAIN_PORT_DDI_LANES_TC1 + tc_port - TC_PORT_1;
 }