Modeset mutex unlock is missing in drm_dp_mst_detect_port function. This will lead to deadlock if calling the function multiple times in an atomic operation, for example, getting imultiple MST ports status for a DP MST bonding scenario. Signed-off-by: Ramya SR <quic_rsr@xxxxxxxxxxx> --- drivers/gpu/drm/display/drm_dp_mst_topology.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c b/drivers/gpu/drm/display/drm_dp_mst_topology.c index ed96cfc..d6512c4 100644 --- a/drivers/gpu/drm/display/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c @@ -4154,7 +4154,7 @@ drm_dp_mst_detect_port(struct drm_connector *connector, ret = drm_modeset_lock(&mgr->base.lock, ctx); if (ret) - goto out; + goto fail; ret = connector_status_disconnected; @@ -4181,6 +4181,8 @@ drm_dp_mst_detect_port(struct drm_connector *connector, break; } out: + drm_modeset_unlock(&mgr->base.lock); +fail: drm_dp_mst_topology_put_port(port); return ret; } -- 2.7.4