From: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
To: jianqi.ren.cn@windriver.com, wayne.lin@amd.com,
gregkh@linuxfoundation.org
Cc: stable@vger.kernel.org, harry.wentland@amd.com,
sunpeng.li@amd.com, Rodrigo.Siqueira@amd.com,
alexander.deucher@amd.com, christian.koenig@amd.com,
airlied@gmail.com, daniel@ffwll.ch, Jerry.Zuo@amd.com,
zaeem.mohamed@amd.com, amd-gfx@lists.freedesktop.org,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
Vegard Nossum <vegard.nossum@oracle.com>
Subject: Re: [PATCH 6.1.y] drm/amd/display: Don't refer to dc_sink in is_dsc_need_re_compute
Date: Mon, 9 Dec 2024 11:43:32 +0530 [thread overview]
Message-ID: <82d8db95-2f62-4124-aff8-424252f505df@oracle.com> (raw)
In-Reply-To: <20241209063637.3427088-1-jianqi.ren.cn@windriver.com>
Hi Jianqi,
On 09/12/24 12:06, jianqi.ren.cn@windriver.com wrote:
> From: Wayne Lin <wayne.lin@amd.com>
>
> [ Upstream commit fcf6a49d79923a234844b8efe830a61f3f0584e4 ]
>
> [Why]
> When unplug one of monitors connected after mst hub, encounter null pointer dereference.
>
> It's due to dc_sink get released immediately in early_unregister() or detect_ctx(). When
> commit new state which directly referring to info stored in dc_sink will cause null pointer
> dereference.
>
> [how]
> Remove redundant checking condition. Relevant condition should already be covered by checking
> if dsc_aux is null or not. Also reset dsc_aux to NULL when the connector is disconnected.
>
> Reviewed-by: Jerry Zuo <jerry.zuo@amd.com>
> Acked-by: Zaeem Mohamed <zaeem.mohamed@amd.com>
> Signed-off-by: Wayne Lin <wayne.lin@amd.com>
> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
> Signed-off-by: Jianqi Ren <jianqi.ren.cn@windriver.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> index 1acef5f3838f..a1619f4569cf 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
> @@ -183,6 +183,8 @@ amdgpu_dm_mst_connector_early_unregister(struct drm_connector *connector)
> dc_sink_release(dc_sink);
> aconnector->dc_sink = NULL;
> aconnector->edid = NULL;
> + aconnector->dsc_aux = NULL;
> + port->passthrough_aux = NULL;
> }
>
> aconnector->mst_status = MST_STATUS_DEFAULT;
> @@ -487,6 +489,8 @@ dm_dp_mst_detect(struct drm_connector *connector,
> dc_sink_release(aconnector->dc_sink);
> aconnector->dc_sink = NULL;
> aconnector->edid = NULL;
> + aconnector->dsc_aux = NULL;
> + port->passthrough_aux = NULL;
>
> amdgpu_dm_set_mst_status(&aconnector->mst_status,
> MST_REMOTE_EDID | MST_ALLOCATE_NEW_PAYLOAD | MST_CLEAR_ALLOCATED_PAYLOAD,
This backport doesn't look right to me, can you please clarify these.
1. I think it is worth documenting in commit message just before your
SOB on why you don't need this hunk:
MST_REMOTE_EDID | MST_ALLOCATE_NEW_PAYLOAD |
MST_CLEAR_ALLOCATED_PAYLOAD,
@@ -1238,14 +1242,6 @@ static bool is_dsc_need_re_compute(
if (!aconnector || !aconnector->dsc_aux)
continue;
- /*
- * check if cached virtual MST DSC caps are
available and DSC is supported
- * as per specifications in their Virtual DPCD
registers.
- */
- if
(!(aconnector->dc_sink->dsc_caps.dsc_dec_caps.is_dsc_supported ||
-
aconnector->dc_link->dpcd_caps.dsc_caps.dsc_basic_caps.fields.dsc_support.DSC_PASSTHROUGH_SUPPORT))
- continue;
-
stream_on_link[new_stream_on_link_num] = aconnector;
new_stream_on_link_num++;
which is part of upstream, I understand that this is not in 6.1.y code,
if so is it even affected ?
2. Also commit message says:
""
Remove redundant checking condition. Relevant condition should already
be covered by checking if dsc_aux is null or not. Also reset dsc_aux to
NULL when the connector is disconnected.
""
but the if(!aconnector->dsc_aux) is not in 6.1.y, so something is
missing. Maybe 6.1.y is not affected or we need more backports to 6.1.y
to make them clean cherry-picks ?
Thanks,
Harshit
next prev parent reply other threads:[~2024-12-09 6:13 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 6:36 [PATCH 6.1.y] drm/amd/display: Don't refer to dc_sink in is_dsc_need_re_compute jianqi.ren.cn
2024-12-09 6:13 ` Harshit Mogalapalli [this message]
2024-12-09 14:35 ` Sasha Levin
-- strict thread matches above, loose matches on Subject: below --
2025-05-13 1:52 jianqi.ren.cn
2025-05-13 18:50 ` Sasha Levin
2024-12-11 10:15 jianqi.ren.cn
2024-12-11 16:33 ` Sasha Levin
2024-12-12 12:11 ` Greg KH
2024-12-11 10:01 jianqi.ren.cn
2024-12-11 16:32 ` Sasha Levin
2024-12-06 10:06 jianqi.ren.cn
2024-12-06 17:11 ` Sasha Levin
2024-12-11 8:15 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=82d8db95-2f62-4124-aff8-424252f505df@oracle.com \
--to=harshit.m.mogalapalli@oracle.com \
--cc=Jerry.Zuo@amd.com \
--cc=Rodrigo.Siqueira@amd.com \
--cc=airlied@gmail.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=harry.wentland@amd.com \
--cc=jianqi.ren.cn@windriver.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=sunpeng.li@amd.com \
--cc=vegard.nossum@oracle.com \
--cc=wayne.lin@amd.com \
--cc=zaeem.mohamed@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.