Re: [PATCH] drm/bridge: samsung-dsim: Fix memory leak in error path
From: Osama Abdelkader
Date: Mon Feb 09 2026 - 13:47:34 EST
On Mon, Feb 09, 2026 at 01:41:21PM +0100, Luca Ceresoli wrote:
> Hello Osama,
>
> On Sat Feb 7, 2026 at 7:37 PM CET, Osama Abdelkader wrote:
> > In samsung_dsim_host_attach(), drm_bridge_add() is called to add the
> > bridge. However, if samsung_dsim_register_te_irq() or
> > pdata->host_ops->attach() fails afterwards, the function returns
> > without removing the bridge, causing a memory leak.
> >
> > Fix this by adding proper error handling with goto labels to ensure
> > drm_bridge_remove() is called in all error paths. Also ensure that
> > samsung_dsim_unregister_te_irq() is called if the attach operation
> > fails after the TE IRQ has been registered.
> >
> > Signed-off-by: Osama Abdelkader <osama.abdelkader@xxxxxxxxx>
>
> Good catch!
>
> However being a fix you need a 'Fixes:' line pointing to the first commit
> where hte bug exists. At a quick search it looks like f9bfd326f57e, but
> please double check that. And with a Fixes tag you need Cc: stable, see the
> docs [0].
>
> > --- a/drivers/gpu/drm/bridge/samsung-dsim.c
> > +++ b/drivers/gpu/drm/bridge/samsung-dsim.c
> > @@ -1881,6 +1881,8 @@ static int samsung_dsim_register_te_irq(struct samsung_dsim *dsi, struct device
> > return 0;
> > }
> >
> > +static void samsung_dsim_unregister_te_irq(struct samsung_dsim *dsi);
>
> Please don't add a forward declaration. Just move
> samsung_dsim_unregister_te_irq() function earlier, perhaps right here. Also
> mention in the commit message that you have just moved it without changes,
> to help reviewers: unfortunately code being moved it not very well
> visualized in a diff.
>
> Otherwise looks good!
>
> It would be great if you please add me in Cc for future patches to this
> driver. I'm using and touching it [1][2] so I'd like to review patches
> touching it. Thanks!
Sure, I will.
Thanks for letting me know.
>
> [0] https://docs.kernel.org/process/stable-kernel-rules.html
> [1] https://lore.kernel.org/lkml/20260109-drm-bridge-alloc-getput-drm_of_find_bridge-2-v2-0-8bad3ef90b9f@xxxxxxxxxxx/
> [2] https://lore.kernel.org/lkml/20260206-drm-bridge-atomic-vs-remove-clear_and_put-v1-2-6f1a7d03c45f@xxxxxxxxxxx/
>
> Luca
>
> --
> Luca Ceresoli, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Hello Luca,
Thank you for the review, I just did that in v2.
Thanks,
Osama