diff mbox series

gpiolib: suppress error message on EPROBE_DEFER

Message ID 1516566774-1786-1-git-send-email-david@lechnology.com
State New
Headers show
Series gpiolib: suppress error message on EPROBE_DEFER | expand

Commit Message

David Lechner Jan. 21, 2018, 8:32 p.m. UTC
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(-)

Comments

Linus Walleij Feb. 7, 2018, 12:57 p.m. UTC | #1
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
Grygorii Strashko Feb. 8, 2018, 6:18 p.m. UTC | #2
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
David Lechner Feb. 18, 2018, 3:47 a.m. UTC | #3
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
Linus Walleij Feb. 22, 2018, 3 p.m. UTC | #4
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 mbox series

Patch

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;
 }