public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/2] driver core: add a wrapper to device probe log helper to return pointer
@ 2022-02-14 14:32 Andy Shevchenko
  2022-02-14 14:32 ` [PATCH v1 2/2] serial: sh-sci: Switch to use dev_err_probe_ptr() Andy Shevchenko
  2022-02-14 14:55 ` [PATCH v1 1/2] driver core: add a wrapper to device probe log helper to return pointer Geert Uytterhoeven
  0 siblings, 2 replies; 7+ messages in thread
From: Andy Shevchenko @ 2022-02-14 14:32 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-serial, linux-kernel
  Cc: Jiri Slaby, Javier Martinez Canillas, Geert Uytterhoeven,
	Andy Shevchenko

Sometimes the ->probe() function can be split to the core and actual probe
parts. In such cases the core one may return a pointer to the allocated
resource, or error pointer in unsuccessful scenario. Allow that kind of
core function to use dev_err_probe_ptr(), so the following excerpt

	ret = bar(...);
	if (ret) {
		dev_err_probe(dev, ret, ...);
		return ERR_PTR(ret);
	}

can be replaced with

	ret = bar(...);
	if (ret)
		return dev_err_probe_ptr(dev, ret, ...);

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 include/linux/device.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/linux/device.h b/include/linux/device.h
index 93459724dcde..8650d3afbe7c 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -14,6 +14,7 @@
 
 #include <linux/dev_printk.h>
 #include <linux/energy_model.h>
+#include <linux/err.h>
 #include <linux/ioport.h>
 #include <linux/kobject.h>
 #include <linux/klist.h>
@@ -982,6 +983,13 @@ void device_links_supplier_sync_state_resume(void);
 extern __printf(3, 4)
 int dev_err_probe(const struct device *dev, int err, const char *fmt, ...);
 
+/* As above, but returns error pointer */
+static inline __printf(3, 0)
+void *dev_err_probe_ptr(const struct device *dev, int err, const char *fmt, va_list args)
+{
+	return ERR_PTR(dev_err_probe(dev, err, fmt, args));
+}
+
 /* Create alias, so I can be autoloaded. */
 #define MODULE_ALIAS_CHARDEV(major,minor) \
 	MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor))
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-06-11  9:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-14 14:32 [PATCH v1 1/2] driver core: add a wrapper to device probe log helper to return pointer Andy Shevchenko
2022-02-14 14:32 ` [PATCH v1 2/2] serial: sh-sci: Switch to use dev_err_probe_ptr() Andy Shevchenko
2022-02-14 14:57   ` Geert Uytterhoeven
2022-02-14 19:12   ` kernel test robot
2022-02-15  1:40   ` kernel test robot
2023-06-11  9:17   ` Andi Shyti
2022-02-14 14:55 ` [PATCH v1 1/2] driver core: add a wrapper to device probe log helper to return pointer Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox