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
next prev parent 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.