All of lore.kernel.org
 help / color / mirror / Atom feed
From: Akari Tsuyukusa <akkun11.open@gmail.com>
To: Brian Masney <bmasney@redhat.com>
Cc: Michael Turquette <mturquette@baylibre.com>,
	 Stephen Boyd <sboyd@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	 AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	"open list:COMMON CLK FRAMEWORK" <linux-clk@vger.kernel.org>,
	 "open list:ARM/Mediatek SoC support"
	<linux-kernel@vger.kernel.org>,
	 "moderated list:ARM/Mediatek SoC support"
	<linux-arm-kernel@lists.infradead.org>,
	 "moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	stable@vger.kernel.org, Chen-Yu Tsai <wenst@chromium.org>,
	 Miles Chen <miles.chen@mediatek.com>
Subject: Re: [PATCH v2 5/6] clk: mediatek: mt8173: fix memory leak on module removal
Date: Wed, 29 Jul 2026 02:02:59 +0900	[thread overview]
Message-ID: <amja9vnEoRTstmGN@buffalo-ssd> (raw)
In-Reply-To: <amjCTJguiANLY0vj@redhat.com>

Hi Brian,

On Tue, Jul 28, 2026 at 10:53:00AM -0400, Brian Masney wrote:
> On Tue, Jul 07, 2026 at 04:48:34PM +0900, Akari Tsuyukusa wrote:
> > clk-mt8173-apmixedsys.c and clk-mt8173-infracfg.c do not call
> > platform_set_drvdata() during their driver probe callback,
> > but their remove callback calls platform_get_drvdata().
> > This results in platform_get_drvdata() returning NULL,
> > which leads to calling kfree(NULL) in mtk_free_clk_data(NULL).
> > This leaves clk_data unreleased, causing a memory leak.
> > 
> > Fix this by calling platform_set_drvdata() during probe.
> > 
> > Fixes: 4c02c9af3cb9 ("clk: mediatek: mt8173: Break down clock drivers and allow module build")
> > Cc: stable@vger.kernel.org
> > Signed-off-by: Akari Tsuyukusa <akkun11.open@gmail.com>
> > ---
> >  drivers/clk/mediatek/clk-mt8173-apmixedsys.c | 2 ++
> >  drivers/clk/mediatek/clk-mt8173-infracfg.c   | 2 ++
> >  2 files changed, 4 insertions(+)
> > 
> > diff --git a/drivers/clk/mediatek/clk-mt8173-apmixedsys.c b/drivers/clk/mediatek/clk-mt8173-apmixedsys.c
> > index d7d416172ab3..65dc4489a09c 100644
> > --- a/drivers/clk/mediatek/clk-mt8173-apmixedsys.c
> > +++ b/drivers/clk/mediatek/clk-mt8173-apmixedsys.c
> > @@ -179,6 +179,8 @@ static int clk_mt8173_apmixed_probe(struct platform_device *pdev)
> >  	if (r)
> >  		goto unregister_ref2usb;
> >  
> > +	platform_set_drvdata(pdev, clk_data);
> > +
> >  	return 0;
> >  
> >  unregister_ref2usb:
> > diff --git a/drivers/clk/mediatek/clk-mt8173-infracfg.c b/drivers/clk/mediatek/clk-mt8173-infracfg.c
> > index fa2d1d557e04..8b69009e1965 100644
> > --- a/drivers/clk/mediatek/clk-mt8173-infracfg.c
> > +++ b/drivers/clk/mediatek/clk-mt8173-infracfg.c
> > @@ -128,6 +128,8 @@ static int clk_mt8173_infracfg_probe(struct platform_device *pdev)
> >  	if (r)
> >  		goto unregister_clk_hw;
> >  
> > +	platform_set_drvdata(pdev, clk_data);
> > +
> 
> This patch doesn't compile.
> 
>     drivers/clk/mediatek/clk-mt8173-infracfg.c: In function ‘clk_mt8173_infracfg_probe’:
>     drivers/clk/mediatek/clk-mt8173-infracfg.c:131:36: error: ‘clk_data’ undeclared (first use in this function); did you mean ‘clk_gate’?

Sorry for sending you a broken patch.
I accidentally built only with ARCH=arm and missed the build failure.

While fixing this, I noticed that clk-mt8173-infracfg.c can be converted
to use mtk_clk_simple_probe()/remove() instead of adding driver-specific
drvdata handling.

The helper currently lacks cpumux support, but I have a reviewed patch
for it:
https://lore.kernel.org/lkml/20260304181024.738391-2-akkun11.open@gmail.com/
(Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>)

Also, adding PLL support to the helper should allow more MediaTek clock
drivers to use the common probe/remove path:
https://github.com/TeamYogaBlade2/linux/commit/d991a61887ab76fd83708dffe8e48192e01023d5

Would it be preferable to extend mtk_clk_simple_probe()/remove() with
cpumux and PLL support and reorganize this series around it?
or should I keep this series focused on the current simple fixes?

Best Regards,
Akari

  reply	other threads:[~2026-07-28 17:03 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-07  7:48 [PATCH v2 0/6] clk: mediatek: fix memory leak on module removal Akari Tsuyukusa
2026-07-07  7:48 ` [PATCH v2 1/6] clk: mediatek: mt2712: " Akari Tsuyukusa
2026-07-07 14:47   ` Brian Masney
2026-07-07  7:48 ` [PATCH v2 2/6] clk: mediatek: mt6795: " Akari Tsuyukusa
2026-07-07 14:47   ` Brian Masney
2026-07-07  7:48 ` [PATCH v2 3/6] clk: mediatek: mt7622: " Akari Tsuyukusa
2026-07-07 14:47   ` Brian Masney
2026-07-07  7:48 ` [PATCH v2 4/6] clk: mediatek: mt8135: " Akari Tsuyukusa
2026-07-07 14:47   ` Brian Masney
2026-07-07  7:48 ` [PATCH v2 5/6] clk: mediatek: mt8173: " Akari Tsuyukusa
2026-07-07 14:48   ` Brian Masney
2026-07-28 14:53   ` Brian Masney
2026-07-28 17:02     ` Akari Tsuyukusa [this message]
2026-07-07  7:48 ` [PATCH v2 6/6] clk: mediatek: mt8192: " Akari Tsuyukusa
2026-07-07 14:48   ` Brian Masney

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=amja9vnEoRTstmGN@buffalo-ssd \
    --to=akkun11.open@gmail.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=bmasney@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=miles.chen@mediatek.com \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=wenst@chromium.org \
    /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.