Message ID | 9261130.uPvufuEFrr@phil (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Mar 10, 2015 at 12:22:06AM +0100, Heiko Stuebner wrote: > When {devm_}regulator_get returns -EPROBE_DEFER the driver in question will > try probing again at a later time. So don't spam the log with failure messages > as this is an expected result of probe ordering. > - dev_err(dev, "Failed to get supply '%s': %d\n", > - consumers[i].supply, ret); > + if (ret != -EPROBE_DEFER) > + dev_err(dev, "Failed to get supply '%s': %d\n", > + consumers[i].supply, ret); No, this is not good - you get a nice quiet boot even if the regulator does not appear which means people have no idea why the driver isn't loading. That's not a good user experience, silent error handling is the main problem I see people running into trying to get their systems up and running these days. Really deferred probe is just fundamentally noisy since it's intentionally tolerating errors like this and of course a lot of the noise comes from the deferral messages the core prints. This is also not really connected to the series you're posting it in...
Am Dienstag, 10. März 2015, 12:07:50 schrieb Mark Brown: > On Tue, Mar 10, 2015 at 12:22:06AM +0100, Heiko Stuebner wrote: > > When {devm_}regulator_get returns -EPROBE_DEFER the driver in question > > will > > try probing again at a later time. So don't spam the log with failure > > messages as this is an expected result of probe ordering. > > > > - dev_err(dev, "Failed to get supply '%s': %d\n", > > - consumers[i].supply, ret); > > + if (ret != -EPROBE_DEFER) > > + dev_err(dev, "Failed to get supply '%s': %d\n", > > + consumers[i].supply, ret); > > No, this is not good - you get a nice quiet boot even if the regulator > does not appear which means people have no idea why the driver isn't > loading. That's not a good user experience, silent error handling is > the main problem I see people running into trying to get their systems > up and running these days. > > Really deferred probe is just fundamentally noisy since it's > intentionally tolerating errors like this and of course a lot of the > noise comes from the deferral messages the core prints. ok, I'll drop this one then
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 52af1d7..07ca6cb 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -3163,8 +3163,9 @@ int regulator_bulk_get(struct device *dev, int num_consumers, consumers[i].supply); if (IS_ERR(consumers[i].consumer)) { ret = PTR_ERR(consumers[i].consumer); - dev_err(dev, "Failed to get supply '%s': %d\n", - consumers[i].supply, ret); + if (ret != -EPROBE_DEFER) + dev_err(dev, "Failed to get supply '%s': %d\n", + consumers[i].supply, ret); consumers[i].consumer = NULL; goto err; } diff --git a/drivers/regulator/devres.c b/drivers/regulator/devres.c index 6ec1d40..78e460d 100644 --- a/drivers/regulator/devres.c +++ b/drivers/regulator/devres.c @@ -168,8 +168,9 @@ int devm_regulator_bulk_get(struct device *dev, int num_consumers, consumers[i].supply); if (IS_ERR(consumers[i].consumer)) { ret = PTR_ERR(consumers[i].consumer); - dev_err(dev, "Failed to get supply '%s': %d\n", - consumers[i].supply, ret); + if (ret != -EPROBE_DEFER) + dev_err(dev, "Failed to get supply '%s': %d\n", + consumers[i].supply, ret); consumers[i].consumer = NULL; goto err; }
When {devm_}regulator_get returns -EPROBE_DEFER the driver in question will try probing again at a later time. So don't spam the log with failure messages as this is an expected result of probe ordering. Signed-off-by: Heiko Stuebner <heiko@sntech.de> --- drivers/regulator/core.c | 5 +++-- drivers/regulator/devres.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-)