All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@bootlin.com>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Xidong Wang <wangxidong_97@163.com>,
	Mans Rullgard <mans@mansr.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Richard Weinberger <richard@nod.at>,
	Marc Gonzalez <marc.w.gonzalez@free.fr>,
	linux-mtd@lists.infradead.org,
	Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>,
	Brian Norris <computersforpeace@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>
Subject: Re: [PATCH 1/1] mtd:nand:fix memory leak
Date: Wed, 4 Apr 2018 09:07:10 +0200	[thread overview]
Message-ID: <20180404090710.4f74b5b4@bbrezillon> (raw)
In-Reply-To: <20180404082807.0f211578@xps13>

On Wed, 4 Apr 2018 08:28:07 +0200
Miquel Raynal <miquel.raynal@bootlin.com> wrote:

> Hi Xidong,
> 
> As part of a reorganization in the NAND subsystem, you should now
> prefix your commit title this way:
> 
>         mtd: rawnand: tango: fix memory leak
> 
> Not sure if this patch is candidate to cc:stable?
> 
> On Wed,  4 Apr 2018 11:05:51 +0800, Xidong Wang
> <wangxidong_97@163.com> wrote:
> 
> > In function tango_nand_probe(), the memory allocated by
> > clk_get() is not released on the normal path and
> > the error path that IS_ERR(nfc->chan) returns true.  
> 
> The fact that the error path returns true looks out of topic, can you
> remove it? Just saying that you fix a memory leak is enough I guess.
> 
> > This will result in a memory leak bug.
> > 
> > Signed-off-by: Xidong Wang <wangxidong_97@163.com>
> > ---
> >  drivers/mtd/nand/tango_nand.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/mtd/nand/tango_nand.c b/drivers/mtd/nand/tango_nand.c
> > index c5bee00b..8083459 100644
> > --- a/drivers/mtd/nand/tango_nand.c
> > +++ b/drivers/mtd/nand/tango_nand.c
> > @@ -648,12 +648,15 @@ static int tango_nand_probe(struct platform_device *pdev)
> >  		return PTR_ERR(clk);
> >  
> >  	nfc->chan = dma_request_chan(&pdev->dev, "rxtx");
> > -	if (IS_ERR(nfc->chan))
> > +	if (IS_ERR(nfc->chan)) {
> > +		clk_put(clk);
> >  		return PTR_ERR(nfc->chan);
> > +	}
> >  
> >  	platform_set_drvdata(pdev, nfc);
> >  	nand_hw_control_init(&nfc->hw);
> >  	nfc->freq_kHz = clk_get_rate(clk) / 1000;
> > +	clk_put(clk);  
> 
> If the clock is used only here, better do the frequency derivation
> right after the clock_get(), and follow with a clk_put()? This way you
> don't have to change the error path and 'related' actions remain
> grouped.

Hm, definitely not a good idea to release the reference you have on the
clk if the driver depends on it. I recommend using devm_clk_get() to
solve this leak.

  reply	other threads:[~2018-04-04  7:07 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-04  3:05 [PATCH 1/1] mtd:nand:fix memory leak Xidong Wang
2018-04-04  3:05 ` Xidong Wang
2018-04-04  6:28 ` Miquel Raynal
2018-04-04  7:07   ` Boris Brezillon [this message]
2018-04-04  7:08     ` Boris Brezillon
2018-04-05  9:12       ` Marc Gonzalez
2018-04-05  9:44         ` Miquel Raynal
2018-04-05 11:04           ` Boris Brezillon
2018-04-05  9:54         ` Boris Brezillon
2018-04-05 11:26           ` Marc Gonzalez
2018-04-05 11:47             ` Boris Brezillon
2018-04-05 12:00               ` Marc Gonzalez
2018-04-05 12:57     ` [PATCH v2] mtd: rawnand: tango: Fix struct clk " Marc Gonzalez
2018-04-05 14:22       ` Miquel Raynal
2018-04-24 15:50       ` Boris Brezillon

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=20180404090710.4f74b5b4@bbrezillon \
    --to=boris.brezillon@bootlin.com \
    --cc=computersforpeace@gmail.com \
    --cc=cyrille.pitchen@wedev4u.fr \
    --cc=dwmw2@infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=mans@mansr.com \
    --cc=marc.w.gonzalez@free.fr \
    --cc=marek.vasut@gmail.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=richard@nod.at \
    --cc=wangxidong_97@163.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.