Re: [RFC PATCH 4/5] iio: accel: Support Kionix/ROHM KX022A accelerometer

From: Matti Vaittinen
Date: Wed Sep 28 2022 - 12:23:57 EST


Hi Andy,

On 9/28/22 17:06, Andy Shevchenko wrote:
On Wed, Sep 28, 2022 at 02:14:14PM +0300, Matti Vaittinen wrote:
On 9/22/22 20:03, Jonathan Cameron wrote:
On Wed, 21 Sep 2022 14:45:35 +0300

...

+ dev_err(dev, "no regmap\n");

Use dev_err_probe() for all dev_err() stuff in probe paths.
It ends up cleaner and we don't care about the tiny overhead
of checking for deferred.

This one bothers me a bit. It just does not feel correct to pass -EINVAL for
the dev_err_probe() so the dev_err_probe() can check if -EINVAL !=
-EPROBE_DEFER. I do understand perfectly well the consistent use of
dev_err_probe() for all cases where we get an error-code from a function and
return it - but using dev_err_probe() when we hard-code the return value in
code calling the dev_err_probe() does not feel like "the right thing to do"
(tm).

Eg, I agree that
return dev_err_probe(dev, ret, "bar");
is nice even if we know the function that gave us the "ret" never requests
defer (as that can change some day).

However, I don't like issuing:
return dev_err_probe(dev, -EINVAL, "bar");

This case specifically was added into documentation by 7065f92255bb ("driver
core: Clarify that dev_err_probe() is OK even w/out -EPROBE_DEFER").

Yes. And this is exactly what I meant with:
>> Eg, I agree that
>> return dev_err_probe(dev, ret, "bar");
>> is nice even if we know the function that gave us the "ret" never requests
>> defer

There is still (in my opinion) a significant difference if we call:
>> return dev_err_probe(dev, -EINVAL, "bar");

- where we really hard-code the -EINVAL as a parameter to the dev_err_probe()

Well, please let me know if you think the dev_err_probe() should be used
even in cases where we hard code the return to something...

And this should be, of course, maintainer's decision.

Ultimately, yes.

Best Regards
--Matti

--
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~