]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/hdcp: Drop mgr->base.lock acquisition in intel_conn_to_vcpi()
authorSuraj Kandpal <suraj.kandpal@intel.com>
Mon, 4 May 2026 10:11:18 +0000 (15:41 +0530)
committerSuraj Kandpal <suraj.kandpal@intel.com>
Tue, 5 May 2026 02:54:26 +0000 (08:24 +0530)
Now that intel_conn_to_vcpi() reads the MST topology state via
drm_atomic_get_new_mst_topology_state(), the topology state belongs
to this atomic commit and is already serialized through the atomic
state's private object machinery. There is no need to additionally
take mgr->base.lock here.
Taking it from the HDCP enable path in commit_tail with
state->base.acquire_ctx is also unsafe: by this point the
acquire_ctx is no longer in a state where new modeset locks may be
acquired through it, which produces a modeset-lock splat on MST +
HDCP. Drop the drm_modeset_lock() call.

Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Tested-by: Santhosh Reddy Guddati <santhosh.reddy.guddati@intel.com>
Reviewed-by: Santhosh Reddy Guddati <santhosh.reddy.guddati@intel.com>
Link: https://patch.msgid.link/20260504101117.3619984-3-suraj.kandpal@intel.com
drivers/gpu/drm/i915/display/intel_hdcp.c

index 02ac981ca1eaa4011f1f7947c2255b37fc61f6d0..982f698e98140f0b62a80770a15394ff57488720 100644 (file)
@@ -80,9 +80,8 @@ static int intel_conn_to_vcpi(struct intel_atomic_state *state,
        /* For HDMI this is forced to be 0x0. For DP SST also this is 0x0. */
        if (!connector->mst.port)
                return 0;
-       mgr = connector->mst.port->mgr;
 
-       drm_modeset_lock(&mgr->base.lock, state->base.acquire_ctx);
+       mgr = connector->mst.port->mgr;
        mst_state = drm_atomic_get_new_mst_topology_state(&state->base, mgr);
        if (!mst_state) {
                drm_dbg_kms(display->drm, "MST topology still not created\n");