Re: [PATCH v3 08/18] iio: adc: stm32: Simplify with dev_err_probe()

From: Krzysztof Kozlowski
Date: Thu Sep 10 2020 - 03:13:34 EST


On Thu, 10 Sep 2020 at 08:52, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
>
>
>
> On Thursday, September 10, 2020, Peter Rosin <peda@xxxxxxxxxx> wrote:
>>
>> Hi!
>>
>> On 2020-09-09 21:57, Krzysztof Kozlowski wrote:
>> > On Wed, 9 Sep 2020 at 20:36, Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
>> >>
>> >> On Sat, 29 Aug 2020 08:47:16 +0200
>> >> Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote:
>> >>
>> >>> Common pattern of handling deferred probe can be simplified with
>> >>> dev_err_probe(). Less code and also it prints the error value.
>> >>>
>> >>> Signed-off-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
>> >>> Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
>> >>>
>> >> I don't have the thread to hand, but this tripped a warning next
>> >> and the patch was dropped as a result. See below.
>> >
>> > Thanks for letting me know. If you mean the warning caused by:
>> > https://lore.kernel.org/lkml/20200909073716.GA560912@xxxxxxxxx/
>> > then the driver-core patch was dropped, not the iio one:
>> > https://lore.kernel.org/linux-next/20200909074130.GB561485@xxxxxxxxx/T/#t
>> >
>> > So we are good here :)
>>
>> No, we are definitely not good. See below. That means "See below", and
>> not "Please take a guess at what is being talking about".
>
>
>
>>
>> >>> @@ -596,12 +594,9 @@ static int stm32_adc_core_switches_probe(struct device *dev,
>> >>> priv->booster = devm_regulator_get_optional(dev, "booster");
>> >>> if (IS_ERR(priv->booster)) {
>> >>> ret = PTR_ERR(priv->booster);
>> >>> - if (ret != -ENODEV) {
>> >>> - if (ret != -EPROBE_DEFER)
>> >>> - dev_err(dev, "can't get booster %d\n",
>> >>> - ret);
>> >>> - return ret;
>> >>> - }
>> >>> + if (ret != -ENODEV)
>> >>> + dev_err_probe(dev, ret, "can't get booster\n");
>> >>
>> >> This tripped a warning and got the patch dropped because we no longer
>> >> return on error.
>>
>> As Jonathan already said, we no longer return in this hunk. I.e., you have
>> clobbered the error path.
>
>
> Exactly my point why I proposed _must_check in the first place.

That was not exactly that point as you did not mention possible errors
but only "miss the opportunity to optimize". Optimization is different
things than a mistake.

Best regards,
Krzysztof