This is a note to let you know that I've just added the patch titled drm/display/dp_mst: Correct the kref of port. to the 6.1-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: drm-display-dp_mst-correct-the-kref-of-port.patch and it can be found in the queue-6.1 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From d8bf2df715bb8ac964f91fe8bf67c37c5d916463 Mon Sep 17 00:00:00 2001 From: Wayne Lin <Wayne.Lin@xxxxxxx> Date: Wed, 28 Dec 2022 14:50:43 +0800 Subject: drm/display/dp_mst: Correct the kref of port. From: Wayne Lin <Wayne.Lin@xxxxxxx> commit d8bf2df715bb8ac964f91fe8bf67c37c5d916463 upstream. [why & how] We still need to refer to port while removing payload at commit_tail. we should keep the kref till then to release. Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2171 Signed-off-by: Wayne Lin <Wayne.Lin@xxxxxxx> Signed-off-by: Harry Wentland <harry.wentland@xxxxxxx> Fixes: 4d07b0bc4034 ("drm/display/dp_mst: Move all payload info into the atomic state") Cc: stable@xxxxxxxxxxxxxxx # 6.1 Acked-by: Harry Wentland <harry.wentland@xxxxxxx> Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx> Tested-by: Didier Raboud <odyx@xxxxxxxxxx> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- 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 51a46689cda7..4ca37261584a 100644 --- a/drivers/gpu/drm/display/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c @@ -3372,6 +3372,9 @@ void drm_dp_remove_payload(struct drm_dp_mst_topology_mgr *mgr, mgr->payload_count--; mgr->next_start_slot -= payload->time_slots; + + if (payload->delete) + drm_dp_mst_put_port_malloc(payload->port); } EXPORT_SYMBOL(drm_dp_remove_payload); @@ -4327,7 +4330,6 @@ int drm_dp_atomic_release_time_slots(struct drm_atomic_state *state, drm_dbg_atomic(mgr->dev, "[MST PORT:%p] TU %d -> 0\n", port, payload->time_slots); if (!payload->delete) { - drm_dp_mst_put_port_malloc(port); payload->pbn = 0; payload->delete = true; topology_state->payload_mask &= ~BIT(payload->vcpi - 1); -- 2.39.1 Patches currently in stable-queue which might be from Wayne.Lin@xxxxxxx are queue-6.1/drm-display-dp_mst-correct-the-kref-of-port.patch queue-6.1/drm-amdgpu-display-mst-update-mst_mgr-relevant-variable-when-long-hpd.patch queue-6.1/drm-amdgpu-display-mst-limit-payload-to-be-updated-one-by-one.patch