All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Yongxing Mou" <yongxing.mou@oss.qualcomm.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v8 14/15] drm/msm/dp: separate dp_display_prepare() into its own API
Date: Mon, 20 Jul 2026 06:27:48 +0000	[thread overview]
Message-ID: <20260720062749.2FE681F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260720-dp_mstclean-v8-14-bea261bf4e7d@oss.qualcomm.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Splitting `msm_dp_display_atomic_enable()` into `prepare` and `enable` drops the early return protection on failure paths, causing the display stream to be unconditionally enabled even if link preparation fails, leading to unclocked/unpowered hardware access and crashes.
--

--- Patch [14]: [PATCH v8 14/15] drm/msm/dp: separate dp_display_prepare() into its own API ---
commit b0785b0b736b2b15642aeae00b1fdb850ab52d5c
Author: Abhinav Kumar <quic_abhinavk@quicinc.com>
drm/msm/dp: separate dp_display_prepare() into its own API

This commit splits the display enable sequence into separate link preparation
and stream enable functions. This allows MST link setup to run once for
multiple sinks, while the stream setup runs per-sink.

> diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
> index deb21cee11830..74d885e38b8cf 100644
> --- a/drivers/gpu/drm/msm/dp/dp_display.c
> +++ b/drivers/gpu/drm/msm/dp/dp_display.c
[ ... ]
> @@ -1428,10 +1428,16 @@ void msm_dp_display_atomic_enable(struct msm_dp *msm_dp_display,
>  	}
>  
>  	rc = msm_dp_display_prepare_link(dp);
> -	if (rc) {
> +	if (rc)
>  		DRM_ERROR("DP display prepare failed, rc=%d\n", rc);
> -		return;
> -	}
> +}

[Severity: High]
By splitting the function and removing this early return, the failure state is
discarded. If crtc is NULL or hardware power/clocks fail to initialize in
msm_dp_display_prepare_link() (for example, if pm_runtime_resume_and_get()
fails), the caller will still proceed to the enable step.

Could this cause a crash (e.g., Synchronous External Abort) when accessing
unpowered hardware registers in the enable path?

> diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c
> index aa98f101b093e..75ea52afd9f3e 100644
> --- a/drivers/gpu/drm/msm/dp/dp_drm.c
> +++ b/drivers/gpu/drm/msm/dp/dp_drm.c
> @@ -55,7 +55,8 @@ static void msm_dp_bridge_atomic_enable(struct drm_bridge *drm_bridge,
>  	struct msm_dp_bridge *dp_bridge = to_dp_bridge(drm_bridge);
>  	struct msm_dp *dp = dp_bridge->msm_dp_display;
>  
> -	msm_dp_display_atomic_enable(dp, state);
> +	msm_dp_display_atomic_prepare(dp, state);
> +	msm_dp_display_atomic_enable(dp);
>  }

[Severity: High]
Since msm_dp_display_atomic_prepare() returns void, this function (and
msm_edp_bridge_atomic_enable() below) unconditionally calls
msm_dp_display_atomic_enable() regardless of preparation success.

Should msm_dp_display_atomic_prepare() return an error code so callers can skip
enabling the stream if preparation fails?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260720-dp_mstclean-v8-0-bea261bf4e7d@oss.qualcomm.com?part=14

  reply	other threads:[~2026-07-20  6:27 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-20  6:08 [PATCH v8 00/15] drm/msm/dp: Prerequisite cleanup for upcoming MST support Yongxing Mou
2026-07-20  6:08 ` [PATCH v8 01/15] drm/msm/dp: remove cached drm_edid from panel Yongxing Mou
2026-07-20  6:08 ` [PATCH v8 02/15] drm/msm/dp: drop deprecated .mode_set() and use .atomic_enable Yongxing Mou
2026-07-20  6:33   ` sashiko-bot
2026-07-20  6:08 ` [PATCH v8 03/15] drm/msm/dp: move mode setup into msm_dp_panel_init_panel_info() Yongxing Mou
2026-07-20  6:08 ` [PATCH v8 04/15] drm/msm/dp: split msm_dp_ctrl_config_ctrl() into link parts and stream parts Yongxing Mou
2026-07-20  6:08 ` [PATCH v8 05/15] drm/msm/dp: extract MISC1_MISC0 configuration into a separate function Yongxing Mou
2026-07-20  6:08 ` [PATCH v8 06/15] drm/msm/dp: split link setup from source params Yongxing Mou
2026-07-20  6:27   ` sashiko-bot
2026-07-20  6:08 ` [PATCH v8 07/15] drm/msm/dp: move the pixel clock control to its own API Yongxing Mou
2026-07-20  6:26   ` sashiko-bot
2026-07-20  6:08 ` [PATCH v8 08/15] drm/msm/dp: break up dp_display_enable into two parts Yongxing Mou
2026-07-20  6:08 ` [PATCH v8 09/15] drm/msm/dp: re-arrange dp_display_disable() into functional parts Yongxing Mou
2026-07-20  6:08 ` [PATCH v8 10/15] drm/msm/dp: allow dp_ctrl stream APIs to use any panel passed to it Yongxing Mou
2026-07-20  6:24   ` sashiko-bot
2026-07-20  6:08 ` [PATCH v8 11/15] drm/msm/dp: split dp_ctrl_off() into stream and link parts Yongxing Mou
2026-07-20  6:26   ` sashiko-bot
2026-07-20  6:08 ` [PATCH v8 12/15] drm/msm/dp: simplify link and clock disable sequence Yongxing Mou
2026-07-20  6:28   ` sashiko-bot
2026-07-20  6:08 ` [PATCH v8 13/15] drm/msm/dp: make bridge helpers use dp_display to allow re-use Yongxing Mou
2026-07-20  6:27   ` sashiko-bot
2026-07-20  6:08 ` [PATCH v8 14/15] drm/msm/dp: separate dp_display_prepare() into its own API Yongxing Mou
2026-07-20  6:27   ` sashiko-bot [this message]
2026-07-20  6:08 ` [PATCH v8 15/15] drm/msm/dp: pass panel to display enable/disable helpers Yongxing Mou

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=20260720062749.2FE681F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=yongxing.mou@oss.qualcomm.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.