summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2022-12-14 20:42:57 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-03-11 13:50:48 +0100
commit50f7704d1bbe2a9dd2993443ed941d464c75b253 (patch)
treeb018fc36c9486d210e706764ad6615eb8da0824f
parentdrm/display/dp_mst: Fix down/up message handling after sink disconnect (diff)
downloadlinux-stable-50f7704d1bbe2a9dd2993443ed941d464c75b253.tar.xz
linux-stable-50f7704d1bbe2a9dd2993443ed941d464c75b253.zip
drm/display/dp_mst: Fix down message handling after a packet reception error
commit 1241aedb6b5c7a5a8ad73e5eb3a41cfe18a3e00e upstream. After an error during receiving a packet for a multi-packet DP MST sideband message, the state tracking which packets have been received already is not reset. This prevents the reception of subsequent down messages (due to the pending message not yet completed with an end-of-message-transfer packet). Fix the above by resetting the reception state after a packet error. Cc: Lyude Paul <lyude@redhat.com> Cc: <stable@vger.kernel.org> # v3.17+ Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20221214184258.2869417-2-imre.deak@intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/gpu/drm/display/drm_dp_mst_topology.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/display/drm_dp_mst_topology.c b/drivers/gpu/drm/display/drm_dp_mst_topology.c
index 82d1473af2d9..d77858c7c4db 100644
--- a/drivers/gpu/drm/display/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c
@@ -3859,7 +3859,7 @@ static int drm_dp_mst_handle_down_rep(struct drm_dp_mst_topology_mgr *mgr)
struct drm_dp_sideband_msg_rx *msg = &mgr->down_rep_recv;
if (!drm_dp_get_one_sb_msg(mgr, false, &mstb))
- goto out;
+ goto out_clear_reply;
/* Multi-packet message transmission, don't clear the reply */
if (!msg->have_eomt)