All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Liam Zuiderhoek" <zuiderhoekl@gmail.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] GPU: drm: meson: inline call to drm_simple_encoder_init()
Date: Mon, 29 Jun 2026 17:48:26 +0000	[thread overview]
Message-ID: <20260629174826.E54AE1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260629173902.29415-1-zuiderhoekl@gmail.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:

New issues:
- [Medium] The commit claims to inline `drm_simple_encoder_init` for the entire meson driver, but it only modifies `meson_encoder_hdmi.c`, leaving other encoders unconverted.

Pre-existing issues:
- [High] Missing `drm_bridge_remove()` on error paths in `meson_encoder_hdmi_probe()` leaves the bridge registered in the global `bridge_list`, leading to a dangling pointer and potential Use-After-Free.
--

commit 640b38eb942af61527b421bb5d62cb275bca9574
Author: Liam Zuiderhoek <zuiderhoekl@gmail.com>

GPU: drm: meson: inline call to drm_simple_encoder_init()

This commit inlines the function drm_simple_encoder_init for the meson
driver. It replaces the simple encoder init call with drm_encoder_init
and a custom cleanup struct.

> This commit inlines the function drm_simple_encoder_init for the meson
> driver.

[Severity: Medium]
Is the commit message description accurate for the scope of this patch?

The commit states it inlines the function for the meson driver, but this patch 
only modifies the HDMI encoder (meson_encoder_hdmi.c). 

The CVBS (meson_encoder_cvbs_probe) and DSI (meson_encoder_dsi_probe) encoders 
in the same driver still use drm_simple_encoder_init().

Should this patch update those files as well, or should the commit message be 
clarified to specify it only targets the HDMI encoder?

> diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
> index 55c0601df3c62..0dd3a76ad959e 100644
> --- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c
> +++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c

[ ... ]

> @@ -407,8 +411,9 @@ int meson_encoder_hdmi_probe(struct meson_drm *priv)
>  	meson_encoder_hdmi->priv = priv;
>  
>  	/* Encoder */
> -	ret = drm_simple_encoder_init(priv->drm, &meson_encoder_hdmi->encoder,
> -				      DRM_MODE_ENCODER_TMDS);
> +	ret = drm_encoder_init(priv->drm, &meson_encoder_hdmi->encoder,
> +			       &drm_simple_encoder_funcs_cleanup,
> +			       DRM_MODE_ENCODER_TMDS, NULL);
>  	if (ret) {
>  		dev_err_probe(priv->dev, ret, "Failed to init HDMI encoder\n");
>  		goto err_put_node;

[Severity: High]
This is a pre-existing issue, but does this error path leave the bridge 
registered in the global bridge list, leading to a potential use-after-free?

In meson_encoder_hdmi_probe(), drm_bridge_add() is called before the encoder 
initialization. 

If we fail here at drm_encoder_init() (or later during 
drm_bridge_connector_init()), the code jumps to err_put_node which does not 
call drm_bridge_remove():

err_put_node:
	of_node_put(remote);
	return ret;

Similarly, if cec_notifier_conn_register() fails later in the probe, it returns 
directly without cleaning up the bridge.

The cleanup function meson_encoder_hdmi_remove() will not catch this because 
priv->encoders[MESON_ENC_HDMI] is only assigned at the very end of a successful 
probe. 

If the still-registered bridge is later found via of_drm_find_and_get_bridge() 
and its callbacks are invoked, could it dereference the freed priv pointer?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260629173902.29415-1-zuiderhoekl@gmail.com?part=1

  reply	other threads:[~2026-06-29 17:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-29 17:39 [PATCH] GPU: drm: meson: inline call to drm_simple_encoder_init() Liam Zuiderhoek
2026-06-29 17:48 ` sashiko-bot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-06-22 19:46 Liam Zuiderhoek
2026-06-22 19:58 ` sashiko-bot
2026-06-22 19:32 Liam Zuiderhoek
2026-06-22 19:41 ` sashiko-bot

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=20260629174826.E54AE1F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=zuiderhoekl@gmail.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.