From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
To: Mark Brown <broonie@kernel.org>
Cc: "linux-kernel@vger.kernel.org" <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"
<linux-arm-kernel@lists.infradead.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
linux-acpi@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v3 02/18] of/platform: add of_platform_probe
Date: Fri, 11 Sep 2015 16:06:07 +0200 [thread overview]
Message-ID: <CAAObsKAaxBJUH=u-2VSDGUQ6CsqpATpF-48LHEtvd3FD3_prsQ@mail.gmail.com> (raw)
In-Reply-To: <20150911095748.GC12027@sirena.org.uk>
On 11 September 2015 at 11:57, Mark Brown <broonie@kernel.org> wrote:
> On Mon, Sep 07, 2015 at 02:31:06PM +0200, Tomeu Vizoso wrote:
>> On 11 August 2015 at 11:37, Tomeu Vizoso <tomeu.vizoso@collabora.com> wrote:
>> > On 7 August 2015 at 14:19, Mark Brown <broonie@kernel.org> wrote:
>
>> >> This sounds like it's going to break in the case where we have MFDs that
>> >> represent their functions in DT (not a pattern I'm a fan of but it's a
>> >> thing people do). We'll walk back to the platform device for the MFD
>> >> function, try to probe it and then give up. Perhaps that's good enough
>> >> anyway but it's not clear to me why we don't just try every parent we
>> >> find?
>
>> > Agreed. In the attempt at probing dependencies before a device is
>> > probed, I considered that a device's parent is also a dependency and
>
>> Actually I'm not sure how we could probe the ascendants on demand, as
>> currently the parent's device lock is taken when probing so trying to
>> probe a sibling from within a probe callback will cause a deadlock.
>
> How do silbilings come into this? There is an issue there but it's
> going to happen anyway.
Once a platform device (with the platform bus as its parent) is
retrieved from the deferred queue, both the parent and the device in
question are locked (because of the USB stuff mentioned below). If
that device depends on another device whose parent is the platform bus
and we try to probe it (useless, but I don't see a good way of
avoiding it) then we'll deadlock when device_attach locks that device.
>> AFAICS this is only needed for USB interface devices and this
>> behaviour could be limited to them, but I don't like much assuming
>> that no USB device will ever have a dependency on a sibling (though
>> that probably won't happen ever).
>
> I don't see the connection with USB here, sorry - my initial thought was
> about MFDs?
This commit introduced locking of a device's parent before it's
probed, mainly for USB interfaces:
bf74ad5bc417 ("[PATCH] Hold the device's parent's lock during probe and remove")
Regards,
Tomeu
next prev parent reply other threads:[~2015-09-11 14:06 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-06 14:11 [PATCH v3 0/18] On-demand device probing Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 01/18] platform: delay OF device-driver matches until late_initcall Tomeu Vizoso
[not found] ` <1438870315-18689-2-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-08-06 20:19 ` Rob Herring
[not found] ` <CAL_Jsq+GLMZe-f6qEi=7i1YrrWc6k99RpGkOyCd5KkYDiyt0QA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-07 7:11 ` Tomeu Vizoso
2015-08-07 17:06 ` Grygorii Strashko
2015-08-09 13:03 ` Tomeu Vizoso
2015-08-10 10:25 ` Mark Brown
2015-09-04 5:46 ` Tomeu Vizoso
2015-08-14 19:09 ` Grygorii Strashko
2015-09-04 8:05 ` Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 02/18] of/platform: add of_platform_probe Tomeu Vizoso
2015-08-07 12:19 ` Mark Brown
2015-08-11 9:37 ` Tomeu Vizoso
2015-09-07 12:31 ` Tomeu Vizoso
2015-09-11 9:57 ` Mark Brown
2015-09-11 14:06 ` Tomeu Vizoso [this message]
2015-09-11 15:35 ` Mark Brown
2015-09-15 13:08 ` Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 03/18] gpio: Probe GPIO drivers on demand Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 04/18] gpio: Probe pinctrl devices " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 05/18] regulator: core: Reduce critical area in _regulator_get Tomeu Vizoso
2015-08-07 12:07 ` Mark Brown
2015-08-06 14:11 ` [PATCH v3 06/18] regulator: core: Probe regulators on demand Tomeu Vizoso
2015-08-07 12:09 ` Mark Brown
2015-08-07 13:58 ` Rob Herring
2015-08-06 14:11 ` [PATCH v3 07/18] drm: Probe panels " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 08/18] drm/tegra: Probe dpaux devices " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 09/18] i2c: core: Probe i2c adapters and " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 10/18] pwm: Probe PWM chip " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 11/18] backlight: Probe backlight " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 12/18] usb: phy: Probe phy " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 13/18] clk: Probe clk providers " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 15/18] phy: core: Probe phy " Tomeu Vizoso
[not found] ` <1438870315-18689-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-08-06 14:11 ` [PATCH v3 14/18] pinctrl: Probe pinctrl devices " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 16/18] dma: of: Probe DMA controllers " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 17/18] power-supply: Probe power supplies " Tomeu Vizoso
2015-08-06 14:11 ` [PATCH v3 18/18] ASoC: core: Probe components " Tomeu Vizoso
2015-08-06 20:14 ` [PATCH v3 0/18] On-demand device probing Rob Herring
2015-08-07 6:55 ` 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='CAAObsKAaxBJUH=u-2VSDGUQ6CsqpATpF-48LHEtvd3FD3_prsQ@mail.gmail.com' \
--to=tomeu.vizoso@collabora.com \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=javier@osg.samsung.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 \
/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).