On 24.06.2020 14:53, Andy Shevchenko wrote:
On Wed, Jun 24, 2020 at 2:41 PM Andrzej Hajda a.hajda@samsung.com wrote:
Many resource acquisition functions return error value encapsulated in pointer instead of integer value. To simplify coding we can use macro which will accept both types of error. With this patch user can use: probe_err(dev, ptr, ...) instead of: probe_err(dev, PTR_ERR(ptr), ...) Without loosing old functionality: probe_err(dev, err, ...)
...
- This helper implements common pattern present in probe functions for error
- checking: print message if the error is not -EPROBE_DEFER and propagate it.
- In case of -EPROBE_DEFER it sets defer probe reason, which can be checked
- later by reading devices_deferred debugfs attribute.
- It replaces code sequence:
if (err != -EPROBE_DEFER)
dev_err(dev, ...);
Btw, we have now %pe. Can you consider to use it?
OK, I haven't noticed it finally appeared.
return err;
- with
return probe_err(dev, err, ...);
- Returns @err.
- */
+#define probe_err(dev, err, args...) __probe_err(dev, (long)(err), args)
Can't we use PTR_ERR() here?
Nope, I want to accept both types: int and pointer.
Regards
Andrzej