devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Gregory CLEMENT <gregory.clement@free-electrons.com>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Felipe Balbi <balbi@ti.com>,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	linux-arm-kernel@lists.infradead.org,
	Lior Amsalem <alior@marvell.com>,
	Tawfik Bayouk <tawfik@marvell.com>,
	Nadav Haklai <nadavh@marvell.com>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	devicetree@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH v3 01/20] usb: ehci-orion: Fix clock reference leaking
Date: Wed, 7 May 2014 11:38:48 +0200	[thread overview]
Message-ID: <20140507113848.037bb94d@free-electrons.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1405061027490.1312-100000@iolanthe.rowland.org>

Dear Alan Stern,

On Tue, 6 May 2014 10:30:57 -0400 (EDT), Alan Stern wrote:

> >  err2:
> > -	if (!IS_ERR(clk))
> > -		clk_disable_unprepare(clk);
> > +	usb_put_hcd(hcd);
> 
> At this point, priv has just become a dangling pointer, because it
> points to something that was allocated along with hcd.

Right.

> > +
> > +	if (!IS_ERR(priv->clk))
> > +		clk_disable_unprepare(priv->clk);
> 
> And now you are dereferencing memory that has been deallocated.  The
> real problem is that you get and enable the clock _after_ creating hcd,
> but you don't disable it _before_ deallocating hcd.

Correct.

> 
> >  err1:
> >  	dev_err(&pdev->dev, "init %s fail, %d\n",
> >  		dev_name(&pdev->dev), err);
> > @@ -260,14 +273,14 @@ err1:
> >  static int ehci_orion_drv_remove(struct platform_device *pdev)
> >  {
> >  	struct usb_hcd *hcd = platform_get_drvdata(pdev);
> > -	struct clk *clk;
> > +	struct orion_ehci_hcd *priv = hcd_to_orion_priv(hcd);
> >  
> >  	usb_remove_hcd(hcd);
> >  	usb_put_hcd(hcd);
> >  
> > -	clk = devm_clk_get(&pdev->dev, NULL);
> > -	if (!IS_ERR(clk))
> > -		clk_disable_unprepare(clk);
> > +	if (!IS_ERR(priv->clk))
> > +		clk_disable_unprepare(priv->clk);
> 
> This has the same problem as above.

Indeed. Will fix in v4.

> Also, for both this patch and 02/20, it would be better to replace the
> "errN" labels with something more descriptive, so that it's not
> necessary to renumber them every time something changes.

Sure. I've added an additional commit prior to this patch that renames
the goto labels to something more meaningful. This will be part of v4.

Thanks for the review!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2014-05-07  9:38 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-06  0:13 [PATCH v3 00/20] USB support for Armada 38x and Armada 375 Gregory CLEMENT
2014-05-06  0:13 ` [PATCH v3 01/20] usb: ehci-orion: Fix clock reference leaking Gregory CLEMENT
2014-05-06 14:30   ` Alan Stern
2014-05-07  9:38     ` Thomas Petazzoni [this message]
2014-05-06  0:13 ` [PATCH v3 02/20] usb: ehci-orion: Add the optional PHY support Gregory CLEMENT
2014-05-06 13:33   ` Andrew Lunn
     [not found]     ` <20140506133341.GE6503-g2DYL2Zd6BY@public.gmane.org>
2014-05-07  9:40       ` Thomas Petazzoni
2014-05-07 13:21         ` Andrew Lunn
2014-05-07 13:56           ` Thomas Petazzoni
     [not found] ` <1399335255-589-1-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-05-06  0:13   ` [PATCH v3 03/20] usb: host: xhci-plat: Sort the headers in alphabetic order Gregory CLEMENT
2014-05-06  0:13   ` [PATCH v3 04/20] usb: xhci: add a platform-private field Gregory CLEMENT
     [not found]     ` <1399335255-589-5-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-05-06 15:40       ` Felipe Balbi
2014-05-06  0:14   ` [PATCH v3 06/20] usb: host: xhci-plat: Add support for the Armada 38x Gregory CLEMENT
     [not found]     ` <1399335255-589-7-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-05-06 11:34       ` Bartlomiej Zolnierkiewicz
2014-05-06 11:57         ` Arnd Bergmann
2014-05-06 12:10           ` Thomas Petazzoni
2014-05-06 12:21             ` Arnd Bergmann
2014-05-06 12:42               ` Thomas Petazzoni
2014-05-06 15:39     ` Felipe Balbi
2014-05-07 10:23       ` Thomas Petazzoni
2014-05-07 15:10         ` Felipe Balbi
2014-05-07 15:14           ` Thomas Petazzoni
2014-05-06  0:14   ` [PATCH v3 07/20] xhci-platform: Add a new controller using xhci: " Gregory CLEMENT
2014-05-06  0:14   ` [PATCH v3 09/20] ARM: mvebu: Add Device Tree description of the EHCI host on " Gregory CLEMENT
2014-05-06  0:14   ` [PATCH v3 10/20] ARM: mvebu: Add USB3 support for " Gregory CLEMENT
2014-05-06  0:14   ` [PATCH v3 11/20] ARM: configs: Add usb_xhci_mvebu to mvebu_v7_defconfig Gregory CLEMENT
2014-05-06  0:14   ` [PATCH v3 12/20] ARM: configs: Add usb_xhci_mvebu to multi_v7_defconfig Gregory CLEMENT
2014-05-06 13:46     ` Jason Cooper
2014-05-06  0:14   ` [PATCH v3 14/20] xhci-platform: Add a new controller using xHCI: Armada 375 Gregory CLEMENT
2014-05-06  0:14   ` [PATCH v3 15/20] ARM: mvebu: Add Device Tree description of USB cluster controller on " Gregory CLEMENT
2014-05-06  0:14   ` [PATCH v3 16/20] dt: binding: Armada 375 USB cluster Gregory CLEMENT
2014-05-06  0:14   ` [PATCH v3 17/20] phy: Add support for USB cluster on the Armada 375 SoC Gregory CLEMENT
2014-05-06 11:37     ` Bartlomiej Zolnierkiewicz
2014-05-07 12:50       ` Thomas Petazzoni
2014-05-06 13:54     ` Andrew Lunn
     [not found]       ` <20140506135427.GG6503-g2DYL2Zd6BY@public.gmane.org>
2014-05-07 12:52         ` Thomas Petazzoni
2014-05-06 20:53     ` Ezequiel Garcia
     [not found]       ` <20140506205330.GA27308-nAQHv47ARr+vIlHkl8J1cg@public.gmane.org>
2014-05-07 12:55         ` Thomas Petazzoni
2014-05-06  0:14   ` [PATCH v3 18/20] ARM: mvebu: Add USB3 support for Armada 375 Gregory CLEMENT
2014-05-06  0:14   ` [PATCH v3 20/20] ARM: mvebu: Add Device Tree description of the EHCI host on " Gregory CLEMENT
2014-05-06  0:14 ` [PATCH v3 05/20] usb: host: xhci-plat: Add clocks support Gregory CLEMENT
2014-05-06  3:00   ` Felipe Balbi
2014-05-06 13:41   ` Jason Cooper
     [not found]   ` <1399335255-589-6-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-05-07 12:26     ` Thomas Petazzoni
2014-05-06  0:14 ` [PATCH v3 08/20] ARM: mvebu: Add Device Tree description of xHCI hosts on Armada 38x Gregory CLEMENT
2014-05-06 13:42   ` Andrew Lunn
2014-05-06  0:14 ` [PATCH v3 13/20] usb: host: xhci-plat: Add support for the Armada 375 Gregory CLEMENT
2014-05-06  0:14 ` [PATCH v3 19/20] ARM: mvebu: Add Device Tree description of the xHCI host on " Gregory CLEMENT
     [not found] ` <loom.20140507T102941-222@post.gmane.org>
     [not found]   ` <loom.20140507T102941-222-eS7Uydv5nfjZ+VzJOa5vwg@public.gmane.org>
2014-05-07  9:21     ` [PATCH v3 00/20] USB support for Armada 38x and " Sebastian Hesselbarth
2014-05-07  9:48       ` Hans de Goede

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=20140507113848.037bb94d@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=alior@marvell.com \
    --cc=andrew@lunn.ch \
    --cc=balbi@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=ezequiel.garcia@free-electrons.com \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gregory.clement@free-electrons.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=nadavh@marvell.com \
    --cc=robh+dt@kernel.org \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    --cc=tawfik@marvell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).