From: Greg Kroah-Hartman <gregkh@linuxfoundation.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>,
Mark Brown <broonie@kernel.org>,
Thierry Reding <thierry.reding@gmail.com>,
Alan Stern <stern@rowland.harvard.edu>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
linux-arm-kernel@lists.infradead.org,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
devicetree@vger.kernel.org,
Russell King <rmk+kernel@arm.linux.org.uk>,
Linus Walleij <linus.walleij@linaro.org>,
Ulf Hansson <ulf.hansson@linaro.org>,
linux-acpi@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v7 01/20] driver core: handle -EPROBE_DEFER from bus_type.match()
Date: Fri, 16 Oct 2015 23:51:33 -0700 [thread overview]
Message-ID: <20151017065133.GA18329@kroah.com> (raw)
In-Reply-To: <1443517859-30376-2-git-send-email-tomeu.vizoso@collabora.com>
On Tue, Sep 29, 2015 at 11:10:39AM +0200, Tomeu Vizoso wrote:
> Lets implementations of the match() callback in struct bus_type to
> return errors and if it's -EPROBE_DEFER then queue the device for
> deferred probing.
>
> This is useful to buses such as AMBA in which devices are registered
> before their matching information can be retrieved from the HW
> (typically because a clock driver hasn't probed yet).
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>
>
> drivers/base/dd.c | 24 ++++++++++++++++++++++--
> include/linux/device.h | 2 +-
> 2 files changed, 23 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index be0eb4639128..7dc04ee81c8b 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -488,6 +488,7 @@ static int __device_attach_driver(struct device_driver *drv, void *_data)
> struct device_attach_data *data = _data;
> struct device *dev = data->dev;
> bool async_allowed;
> + int ret;
>
> /*
> * Check if device has already been claimed. This may
> @@ -498,8 +499,17 @@ static int __device_attach_driver(struct device_driver *drv, void *_data)
> if (dev->driver)
> return -EBUSY;
>
> - if (!driver_match_device(drv, dev))
> + ret = driver_match_device(drv, dev);
> + if (!ret)
> return 0;
> + else if (ret < 0) {
> + if (ret == -EPROBE_DEFER) {
> + dev_dbg(dev, "Device match requests probe deferral\n");
> + driver_deferred_probe_add(dev);
> + } else
> + dev_warn(dev, "Bus failed to match device: %d", ret);
This is going to start to cause warnings where there were previously
none, which isn't going to be a good idea. It's completly normal for a
bus to not match a device, let's not be noisy for no good reason, unless
you are going to deal with all of the confused user emails?
You do this a bunch in this patch, please don't.
thanks,
greg k-h
WARNING: multiple messages have this Message-ID (diff)
From: gregkh@linuxfoundation.org (Greg Kroah-Hartman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 01/20] driver core: handle -EPROBE_DEFER from bus_type.match()
Date: Fri, 16 Oct 2015 23:51:33 -0700 [thread overview]
Message-ID: <20151017065133.GA18329@kroah.com> (raw)
In-Reply-To: <1443517859-30376-2-git-send-email-tomeu.vizoso@collabora.com>
On Tue, Sep 29, 2015 at 11:10:39AM +0200, Tomeu Vizoso wrote:
> Lets implementations of the match() callback in struct bus_type to
> return errors and if it's -EPROBE_DEFER then queue the device for
> deferred probing.
>
> This is useful to buses such as AMBA in which devices are registered
> before their matching information can be retrieved from the HW
> (typically because a clock driver hasn't probed yet).
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
> ---
>
>
> drivers/base/dd.c | 24 ++++++++++++++++++++++--
> include/linux/device.h | 2 +-
> 2 files changed, 23 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index be0eb4639128..7dc04ee81c8b 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -488,6 +488,7 @@ static int __device_attach_driver(struct device_driver *drv, void *_data)
> struct device_attach_data *data = _data;
> struct device *dev = data->dev;
> bool async_allowed;
> + int ret;
>
> /*
> * Check if device has already been claimed. This may
> @@ -498,8 +499,17 @@ static int __device_attach_driver(struct device_driver *drv, void *_data)
> if (dev->driver)
> return -EBUSY;
>
> - if (!driver_match_device(drv, dev))
> + ret = driver_match_device(drv, dev);
> + if (!ret)
> return 0;
> + else if (ret < 0) {
> + if (ret == -EPROBE_DEFER) {
> + dev_dbg(dev, "Device match requests probe deferral\n");
> + driver_deferred_probe_add(dev);
> + } else
> + dev_warn(dev, "Bus failed to match device: %d", ret);
This is going to start to cause warnings where there were previously
none, which isn't going to be a good idea. It's completly normal for a
bus to not match a device, let's not be noisy for no good reason, unless
you are going to deal with all of the confused user emails?
You do this a bunch in this patch, please don't.
thanks,
greg k-h
next prev parent reply other threads:[~2015-10-17 6:51 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-29 9:10 [PATCH v7 0/20] On-demand device probing Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 01/20] driver core: handle -EPROBE_DEFER from bus_type.match() Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-10-17 6:51 ` Greg Kroah-Hartman [this message]
2015-10-17 6:51 ` Greg Kroah-Hartman
2015-09-29 9:10 ` [PATCH v7 02/20] ARM: amba: Move reading of periphid to amba_match() Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 04/20] of: add function to allow probing a device from a OF node Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-10-17 6:53 ` Greg Kroah-Hartman
2015-10-17 6:53 ` Greg Kroah-Hartman
2015-09-29 9:10 ` [PATCH v7 05/20] gpio: Probe GPIO drivers on demand Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 06/20] pinctrl: Probe pinctrl devices " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 07/20] regulator: core: Probe regulators " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
[not found] ` <1443517859-30376-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-09-29 9:10 ` [PATCH v7 03/20] of/platform: Point to struct device from device node Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 08/20] drm: Probe panels on demand Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 11/20] pwm: Probe PWM chip devices " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 17/20] dma: of: Probe DMA controllers " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 09/20] drm/tegra: Probe dpaux devices " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 10/20] i2c: core: Probe i2c adapters and " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 12/20] backlight: Probe backlight " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 13/20] usb: phy: Probe phy " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-10-17 6:55 ` Greg Kroah-Hartman
2015-10-17 6:55 ` Greg Kroah-Hartman
2015-09-29 9:10 ` [PATCH v7 14/20] clk: Probe clk providers " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 15/20] pinctrl: Probe pinctrl devices " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 16/20] phy: core: Probe phy providers " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 18/20] power-supply: Probe power supplies " Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-09-29 9:10 ` [PATCH v7 19/20] driver core: Allow deferring probes until late init Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
[not found] ` <1443517859-30376-20-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-10-14 23:12 ` Frank Rowand
2015-10-14 23:12 ` Frank Rowand
2015-10-14 23:12 ` Frank Rowand
2015-09-29 9:10 ` [PATCH v7 20/20] of/platform: Defer probes of registered devices Tomeu Vizoso
2015-09-29 9:10 ` Tomeu Vizoso
2015-10-14 23:12 ` Frank Rowand
2015-10-14 23:12 ` Frank Rowand
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=20151017065133.GA18329@kroah.com \
--to=gregkh@linuxfoundation.org \
--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=rmk+kernel@arm.linux.org.uk \
--cc=robh+dt@kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=swarren@wwwdotorg.org \
--cc=thierry.reding@gmail.com \
--cc=tomeu.vizoso@collabora.com \
--cc=ulf.hansson@linaro.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 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.