2022-11-05 00:13:52

by Lyude Paul

[permalink] [raw]
Subject: [PATCH 2/2] drm/display/dp_mst: Fix drm_dp_mst_add_affected_dsc_crtcs() return code

Looks like that we're accidentally dropping a pretty important return code
here. For some reason, we just return -EINVAL if we fail to get the MST
topology state. This is wrong: error codes are important and should never
be squashed without being handled, which here seems to have the potential
to cause a deadlock.

Signed-off-by: Lyude Paul <[email protected]>
Fixes: 8ec046716ca8 ("drm/dp_mst: Add helper to trigger modeset on affected DSC MST CRTCs")
Cc: <[email protected]> # v5.6+
---
drivers/gpu/drm/display/drm_dp_mst_topology.c | 2 +-
1 file changed, 1 insertion(+), 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 ecd22c038c8c0..51a46689cda70 100644
--- a/drivers/gpu/drm/display/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c
@@ -5186,7 +5186,7 @@ int drm_dp_mst_add_affected_dsc_crtcs(struct drm_atomic_state *state, struct drm
mst_state = drm_atomic_get_mst_topology_state(state, mgr);

if (IS_ERR(mst_state))
- return -EINVAL;
+ return PTR_ERR(mst_state);

list_for_each_entry(pos, &mst_state->payloads, next) {

--
2.37.3



2022-11-09 11:29:32

by Lin, Wayne

[permalink] [raw]
Subject: RE: [PATCH 2/2] drm/display/dp_mst: Fix drm_dp_mst_add_affected_dsc_crtcs() return code

[AMD Official Use Only - General]

Hi Lyude,

It LGTM. Feel free to add
Reviewed-by: Wayne Lin <[email protected]>

> -----Original Message-----
> From: Lyude Paul <[email protected]>
> Sent: Saturday, November 5, 2022 7:59 AM
> To: [email protected]
> Cc: [email protected]; David Airlie <[email protected]>; Daniel Vetter
> <[email protected]>; Jani Nikula <[email protected]>; Thomas
> Zimmermann <[email protected]>; Lin, Wayne
> <[email protected]>; Imre Deak <[email protected]>; Mikita Lipski
> <[email protected]>; Deucher, Alexander
> <[email protected]>; open list:DRM DRIVERS <dri-
> [email protected]>; open list <[email protected]>
> Subject: [PATCH 2/2] drm/display/dp_mst: Fix
> drm_dp_mst_add_affected_dsc_crtcs() return code
>
> Looks like that we're accidentally dropping a pretty important return code
> here. For some reason, we just return -EINVAL if we fail to get the MST
> topology state. This is wrong: error codes are important and should never be
> squashed without being handled, which here seems to have the potential to
> cause a deadlock.
>
> Signed-off-by: Lyude Paul <[email protected]>
> Fixes: 8ec046716ca8 ("drm/dp_mst: Add helper to trigger modeset on
> affected DSC MST CRTCs")
> Cc: <[email protected]> # v5.6+
> ---
> drivers/gpu/drm/display/drm_dp_mst_topology.c | 2 +-
> 1 file changed, 1 insertion(+), 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 ecd22c038c8c0..51a46689cda70 100644
> --- a/drivers/gpu/drm/display/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/display/drm_dp_mst_topology.c
> @@ -5186,7 +5186,7 @@ int drm_dp_mst_add_affected_dsc_crtcs(struct
> drm_atomic_state *state, struct drm
> mst_state = drm_atomic_get_mst_topology_state(state, mgr);
>
> if (IS_ERR(mst_state))
> - return -EINVAL;
> + return PTR_ERR(mst_state);
>
> list_for_each_entry(pos, &mst_state->payloads, next) {
>
> --
> 2.37.3