Message ID | 1516566774-1786-1-git-send-email-david@lechnology.com |
---|---|
State | New |
Headers | show |
Series | gpiolib: suppress error message on EPROBE_DEFER | expand |
On Sun, Jan 21, 2018 at 9:32 PM, David Lechner <david@lechnology.com> wrote: > This suppresses printing an error message during probe of gpio drivers > when the error is EPROBE_DEFER. > > Cc: Linus Walleij <linus.walleij@linaro.org> > Signed-off-by: David Lechner <david@lechnology.com> I'm not sure about this. GPIO can be very basic system components. If we don't print this, defer a few times (for some reason) and then the kernel gives up on retrying, silently (as it happens) there is no trace in dmesg of what happened. That makes things hard to debug. This happened to me with some other driver, so it is not a made up example. What about an explicit deferral message for now? Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 02/07/2018 06:57 AM, Linus Walleij wrote: > On Sun, Jan 21, 2018 at 9:32 PM, David Lechner <david@lechnology.com> wrote: > >> This suppresses printing an error message during probe of gpio drivers >> when the error is EPROBE_DEFER. >> >> Cc: Linus Walleij <linus.walleij@linaro.org> >> Signed-off-by: David Lechner <david@lechnology.com> > > I'm not sure about this. > > GPIO can be very basic system components. If we don't > print this, defer a few times (for some reason) and then > the kernel gives up on retrying, silently (as it happens) > there is no trace in dmesg of what happened. That makes > things hard to debug. > > This happened to me with some other driver, so it is not > a made up example. > > What about an explicit deferral message for now? > The DD has debuging prints for all cases, so in general it can be used for boot debugging (really_probe()). So, in my opinion it make sense to print gpiolib specific message only in case of !EPROBE_DEFER. 5c
On 02/07/2018 06:57 AM, Linus Walleij wrote: > On Sun, Jan 21, 2018 at 9:32 PM, David Lechner <david@lechnology.com> wrote: > >> This suppresses printing an error message during probe of gpio drivers >> when the error is EPROBE_DEFER. >> >> Cc: Linus Walleij <linus.walleij@linaro.org> >> Signed-off-by: David Lechner <david@lechnology.com> > > I'm not sure about this. > > GPIO can be very basic system components. If we don't > print this, defer a few times (for some reason) and then > the kernel gives up on retrying, silently (as it happens) > there is no trace in dmesg of what happened. That makes > things hard to debug. > > This happened to me with some other driver, so it is not > a made up example. > > What about an explicit deferral message for now? so you mean something like this? if (err == -EPROBE_DEFER) dev_info(dev, "deferring probe\n") else dev_err(dev, "... failed to register\n") -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Feb 18, 2018 at 4:47 AM, David Lechner <david@lechnology.com> wrote: > On 02/07/2018 06:57 AM, Linus Walleij wrote: >> >> On Sun, Jan 21, 2018 at 9:32 PM, David Lechner <david@lechnology.com> >> wrote: >> >>> This suppresses printing an error message during probe of gpio drivers >>> when the error is EPROBE_DEFER. >>> >>> Cc: Linus Walleij <linus.walleij@linaro.org> >>> Signed-off-by: David Lechner <david@lechnology.com> >> >> >> I'm not sure about this. >> >> GPIO can be very basic system components. If we don't >> print this, defer a few times (for some reason) and then >> the kernel gives up on retrying, silently (as it happens) >> there is no trace in dmesg of what happened. That makes >> things hard to debug. >> >> This happened to me with some other driver, so it is not >> a made up example. >> >> What about an explicit deferral message for now? > > > so you mean something like this? > > if (err == -EPROBE_DEFER) > dev_info(dev, "deferring probe\n") > else > dev_err(dev, "... failed to register\n") Yes exactly. It has been brought to my attention that people are especially allergic to dmesg messages containing the word "failed". So if that is the problem, let's avoid it like this. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 44332b7..134d0e4 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1289,9 +1289,10 @@ int gpiochip_add_data_with_key(struct gpio_chip *chip, void *data, err_free_gdev: ida_simple_remove(&gpio_ida, gdev->id); /* failures here can mean systems won't boot... */ - pr_err("%s: GPIOs %d..%d (%s) failed to register\n", __func__, - gdev->base, gdev->base + gdev->ngpio - 1, - chip->label ? : "generic"); + if (status != -EPROBE_DEFER) + pr_err("%s: GPIOs %d..%d (%s) failed to register\n", __func__, + gdev->base, gdev->base + gdev->ngpio - 1, + chip->label ? : "generic"); kfree(gdev); return status; }
This suppresses printing an error message during probe of gpio drivers when the error is EPROBE_DEFER. Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: David Lechner <david@lechnology.com> --- drivers/gpio/gpiolib.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)