From: Mark Brown <broonie@kernel.org>
To: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
Stephen Warren <swarren@wwwdotorg.org>,
Javier Martinez Canillas <javier@osg.samsung.com>,
Thierry Reding <thierry.reding@gmail.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
linux-arm-kernel@lists.infradead.org,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
devicetree@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>,
linux-acpi@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
Liam Girdwood <lgirdwood@gmail.com>
Subject: Re: [PATCH v4 07/22] regulator: core: Reduce critical area in _regulator_get
Date: Fri, 11 Sep 2015 13:10:24 +0100 [thread overview]
Message-ID: <20150911121024.GQ12027@sirena.org.uk> (raw)
In-Reply-To: <1441628627-5143-8-git-send-email-tomeu.vizoso@collabora.com>
[-- Attachment #1: Type: text/plain, Size: 1004 bytes --]
On Mon, Sep 07, 2015 at 02:23:32PM +0200, Tomeu Vizoso wrote:
> By moving the locking of regulator_list_mutex into regulator_dev_lookup,
> where it is iterated over. The reference count of the regulator's device
> is increased in case it's unregistered while in use.
>
> In _regulator_get() the regulator_list_mutex mutex was held for most of
> the function, but that is only strictly needed to protect the list
> lookups.
>
> This change would be useful if for example regulator devices could be
> registered on demand when a driver requests them. regulator_register()
> could end up being called from within _regulator_get while the lock on
> regulator_list_mutex is being held, causing a deadlock.
The fix for this is to convert the code to use the list maintained by
the driver core for regulator class to iterate the regulators rather
than fiddle about with the locking. I'm pretty sure the current locking
has problems and I'm worried that this may make those problems worse.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
next prev parent reply other threads:[~2015-09-11 12:10 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-07 12:23 [PATCH v4 0/22] On-demand device probing Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 01/22] driver core: Add pre_probe callback to bus_type Tomeu Vizoso
2015-09-11 12:04 ` Mark Brown
2015-09-07 12:23 ` [PATCH v4 02/22] ARM: amba: Move reading of periphid to pre_probe() Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 03/22] of/platform: Point to struct device from device node Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 04/22] of: add function to allow probing a device from a OF node Tomeu Vizoso
2015-09-09 1:29 ` Rob Herring
2015-09-10 14:53 ` Tomeu Vizoso
2015-09-11 12:08 ` Mark Brown
2015-09-16 8:17 ` Tomeu Vizoso
2015-09-16 19:35 ` Mark Brown
2015-10-21 11:29 ` Geert Uytterhoeven
2015-09-07 12:23 ` [PATCH v4 05/22] gpio: Probe GPIO drivers on demand Tomeu Vizoso
2015-09-25 17:01 ` Linus Walleij
2015-09-07 12:23 ` [PATCH v4 06/22] gpio: Probe pinctrl devices " Tomeu Vizoso
2015-09-25 17:02 ` Linus Walleij
2015-09-07 12:23 ` [PATCH v4 07/22] regulator: core: Reduce critical area in _regulator_get Tomeu Vizoso
2015-09-11 12:10 ` Mark Brown [this message]
2015-09-07 12:23 ` [PATCH v4 08/22] regulator: core: Probe regulators on demand Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 09/22] drm: Probe panels " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 10/22] drm/tegra: Probe dpaux devices " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 11/22] i2c: core: Probe i2c adapters and " Tomeu Vizoso
2015-10-20 10:42 ` Wolfram Sang
2015-09-07 12:23 ` [PATCH v4 12/22] pwm: Probe PWM chip " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 13/22] backlight: Probe backlight " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 14/22] usb: phy: Probe phy " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 15/22] clk: Probe clk providers " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 16/22] pinctrl: Probe pinctrl devices " Tomeu Vizoso
2015-09-25 17:03 ` Linus Walleij
2015-09-07 12:23 ` [PATCH v4 17/22] phy: core: Probe phy providers " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 18/22] dma: of: Probe DMA controllers " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 19/22] power-supply: Probe power supplies " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 20/22] driver core: Allow deferring probes until late init Tomeu Vizoso
2015-09-11 12:17 ` Mark Brown
2015-09-14 9:04 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 21/22] driver core: Start processing deferred probes earlier Tomeu Vizoso
2015-09-11 12:24 ` Mark Brown
2015-09-15 13:16 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 22/22] of/platform: Defer probes of registered devices Tomeu Vizoso
2015-09-07 20:50 ` [PATCH v4 0/22] On-demand device probing Rob Herring
2015-09-08 7:30 ` Tomeu Vizoso
2015-09-09 1:33 ` Rob Herring
2015-09-09 9:40 ` 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=20150911121024.GQ12027@sirena.org.uk \
--to=broonie@kernel.org \
--cc=arnd@arndb.de \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=javier@osg.samsung.com \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=robh+dt@kernel.org \
--cc=swarren@wwwdotorg.org \
--cc=thierry.reding@gmail.com \
--cc=tomeu.vizoso@collabora.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
all inboxes | Powered by JetHome®