linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 07/23] regulator: core: Remove regulator_list
Date: Sun, 20 Sep 2015 21:32:42 +0100	[thread overview]
Message-ID: <20150920203242.GM21084@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20150919150129.GR12027@sirena.org.uk>

On Sat, Sep 19, 2015 at 08:01:29AM -0700, Mark Brown wrote:
> On Thu, Sep 17, 2015 at 02:57:01PM +0200, Tomeu Vizoso wrote:
> > As we are already registering a device with regulator_class for each
> > regulator device, regulator_list is redundant and can be replaced with
> > calls to class_find_device() and class_for_each_device().
> 
> This appears to leak references to the struct devices returned by
> class_find_device() - it takes a reference before it returns so any
> device found using class_find_device() needs to be released with
> put_device() and I don't see any new put_device() calls in here.

When I've been fiding exactly that kind of bug in the PHY code, I've
been adding comments to the docbook function header detailing the
requirement to balance the reference.  IMHO, this is a good idea,
because the more places that get it with these APIs, the more likely
people are to potentially read it.

The comment I've been putting in the phy code is:

 * If successful, returns a pointer to the phy_device with the embedded
 * struct device refcount incremented by one, or NULL on failure. The
 * refcount must be dropped by calling phy_disconnect() or phy_detach().

which even goes as far as telling people how they should be dropping
the reference.  So there should be no excuse (ignorance is not an
excuse for this!)

-- 
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

  reply	other threads:[~2015-09-20 20:32 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-17 12:56 [PATCH v5 0/23] On-demand device probing Tomeu Vizoso
2015-09-17 12:56 ` [PATCH v5 01/23] driver core: Add pre_probe callback to bus_type Tomeu Vizoso
2015-09-17 15:52   ` Alan Stern
2015-09-18 14:56     ` Tomeu Vizoso
2015-09-17 12:56 ` [PATCH v5 02/23] ARM: amba: Move reading of periphid to pre_probe() Tomeu Vizoso
2015-09-17 12:56 ` [PATCH v5 03/23] of/platform: Point to struct device from device node Tomeu Vizoso
2015-09-17 12:56 ` [PATCH v5 04/23] of: add function to allow probing a device from a OF node Tomeu Vizoso
2015-09-17 12:56 ` [PATCH v5 05/23] gpio: Probe GPIO drivers on demand Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 06/23] gpio: Probe pinctrl devices " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 07/23] regulator: core: Remove regulator_list Tomeu Vizoso
2015-09-19 15:01   ` Mark Brown
2015-09-20 20:32     ` Russell King - ARM Linux [this message]
2015-09-21 14:08       ` Tomeu Vizoso
2015-09-21 14:08     ` Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 08/23] regulator: core: Drop redundant locking Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 09/23] regulator: core: Probe regulators on demand Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 10/23] drm: Probe panels " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 11/23] drm/tegra: Probe dpaux devices " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 12/23] i2c: core: Probe i2c adapters and " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 13/23] pwm: Probe PWM chip " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 14/23] backlight: Probe backlight " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 15/23] usb: phy: Probe phy " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 16/23] clk: Probe clk providers " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 17/23] pinctrl: Probe pinctrl devices " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 18/23] phy: core: Probe phy providers " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 19/23] dma: of: Probe DMA controllers " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 20/23] power-supply: Probe power supplies " Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 21/23] driver core: Allow deferring probes until late init Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 22/23] driver core: Start processing deferred probes earlier Tomeu Vizoso
2015-09-17 12:57 ` [PATCH v5 23/23] of/platform: Defer probes of registered devices Tomeu Vizoso

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=20150920203242.GM21084@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=linux-arm-kernel@lists.infradead.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 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).