linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrzej Hajda <a.hajda@samsung.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Andrzej Hajda <a.hajda@samsung.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, andy.shevchenko@gmail.com,
	Mark Brown <broonie@kernel.org>,
	Russell King - ARM Linux <linux@armlinux.org.uk>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Jernej Skrabec <jernej.skrabec@siol.net>,
	Daniel Vetter <daniel@ffwll.ch>,
	dri-devel@lists.freedesktop.org (open list:DRM DRIVERS)
Subject: [RESEND PATCH v5 3/5] drivers core: allow probe_err accept integer and pointer types
Date: Wed, 24 Jun 2020 13:41:25 +0200	[thread overview]
Message-ID: <20200624114127.3016-4-a.hajda@samsung.com> (raw)
In-Reply-To: <20200624114127.3016-1-a.hajda@samsung.com>

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, ...)

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
---
 drivers/base/core.c    | 25 ++-----------------------
 include/linux/device.h | 25 ++++++++++++++++++++++++-
 2 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 2a96954d5460..df283c62d9c0 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -3953,28 +3953,7 @@ define_dev_printk_level(_dev_info, KERN_INFO);
 
 #endif
 
-/**
- * probe_err - probe error check and log helper
- * @dev: the pointer to the struct device
- * @err: error value to test
- * @fmt: printf-style format string
- * @...: arguments as specified in the format string
- *
- * 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, ...);
- * 	return err;
- * with
- * 	return probe_err(dev, err, ...);
- *
- * Returns @err.
- *
- */
-int probe_err(const struct device *dev, int err, const char *fmt, ...)
+int __probe_err(const struct device *dev, int err, const char *fmt, ...)
 {
 	struct va_format vaf;
 	va_list args;
@@ -3992,7 +3971,7 @@ int probe_err(const struct device *dev, int err, const char *fmt, ...)
 
 	return err;
 }
-EXPORT_SYMBOL_GPL(probe_err);
+EXPORT_SYMBOL_GPL(__probe_err);
 
 static inline bool fwnode_is_primary(struct fwnode_handle *fwnode)
 {
diff --git a/include/linux/device.h b/include/linux/device.h
index 40a90d9bf799..22d3c3d4f461 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -965,7 +965,30 @@ void device_links_supplier_sync_state_pause(void);
 void device_links_supplier_sync_state_resume(void);
 
 extern __printf(3, 4)
-int probe_err(const struct device *dev, int err, const char *fmt, ...);
+int __probe_err(const struct device *dev, int err, const char *fmt, ...);
+
+/**
+ * probe_err - probe error check and log helper
+ * @dev: the pointer to the struct device
+ * @err: error value to test, can be integer or pointer type
+ * @fmt: printf-style format string
+ * @...: arguments as specified in the format string
+ *
+ * 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, ...);
+ * 	return err;
+ * with
+ * 	return probe_err(dev, err, ...);
+ *
+ * Returns @err.
+ *
+ */
+#define probe_err(dev, err, args...) __probe_err(dev, (long)(err), args)
 
 /* Create alias, so I can be autoloaded. */
 #define MODULE_ALIAS_CHARDEV(major,minor) \
-- 
2.17.1


  parent reply	other threads:[~2020-06-24 11:41 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20200624114134eucas1p2799e0ae76fcb026a0e4bcccc2026b732@eucas1p2.samsung.com>
2020-06-24 11:41 ` [RESEND PATCH v5 0/5] driver core: add probe error check helper Andrzej Hajda
     [not found]   ` <CGME20200624114135eucas1p26e2e4683d60cebdce7acd55177013992@eucas1p2.samsung.com>
2020-06-24 11:41     ` [RESEND PATCH v5 1/5] driver core: add probe_err log helper Andrzej Hajda
2020-06-24 11:52       ` Rafael J. Wysocki
2020-06-24 12:31       ` Greg Kroah-Hartman
2020-06-24 13:23         ` Laurent Pinchart
2020-06-24 14:04           ` Andrzej Hajda
2020-06-24 13:27       ` Mark Brown
2020-06-24 13:45         ` Andy Shevchenko
2020-06-24 14:02           ` Mark Brown
2020-06-24 15:00             ` Robin Murphy
2020-06-24 15:28               ` Mark Brown
     [not found]   ` <CGME20200624114136eucas1p1a3a31d95d86754201c7965f26ccd5de0@eucas1p1.samsung.com>
2020-06-24 11:41     ` [RESEND PATCH v5 2/5] driver core: add deferring probe reason to devices_deferred property Andrzej Hajda
2020-06-24 12:11       ` Rafael J. Wysocki
2020-06-24 13:28         ` Andrzej Hajda
2020-06-24 12:34       ` Greg Kroah-Hartman
2020-06-24 13:26         ` Andrzej Hajda
     [not found]   ` <CGME20200624114136eucas1p1c84f81b1d78e2dbad7ac1b762f0a4b4f@eucas1p1.samsung.com>
2020-06-24 11:41     ` Andrzej Hajda [this message]
2020-06-24 12:14       ` [RESEND PATCH v5 3/5] drivers core: allow probe_err accept integer and pointer types Rafael J. Wysocki
2020-06-24 14:44         ` Andrzej Hajda
2020-06-24 14:55           ` Rafael J. Wysocki
2020-06-24 12:30       ` Greg Kroah-Hartman
2020-06-24 14:48         ` Andrzej Hajda
2020-06-24 12:37       ` Robin Murphy
2020-06-24 12:55         ` Andy Shevchenko
2020-06-24 14:25           ` Robin Murphy
2020-06-24 15:04             ` Mark Brown
2020-06-24 15:16               ` Robin Murphy
2020-06-24 19:39                 ` Andrzej Hajda
2020-06-25  8:41                   ` Andy Shevchenko
2020-06-25 10:19                     ` Andrzej Hajda
2020-06-24 13:29         ` Laurent Pinchart
2020-06-24 12:53       ` Andy Shevchenko
2020-06-24 13:12         ` Andrzej Hajda
     [not found]   ` <CGME20200624114137eucas1p13599d33a0c4a9abf7708bf8c8e77264b@eucas1p1.samsung.com>
2020-06-24 11:41     ` [RESEND PATCH v5 4/5] drm/bridge/sii8620: fix resource acquisition error handling Andrzej Hajda
2020-06-24 13:25       ` Mark Brown
     [not found]         ` <cf95aac3-fef5-29d0-d94e-ce6cce4ccdb4@samsung.com>
2020-06-24 14:11           ` Mark Brown
     [not found]   ` <CGME20200624114138eucas1p262505da3ad1067720080d20209ff32de@eucas1p2.samsung.com>
2020-06-24 11:41     ` [RESEND PATCH v5 5/5] drm/bridge: lvds-codec: simplify error handling code Andrzej Hajda
2020-06-24 13:33       ` Laurent Pinchart
2020-06-24 14:03         ` Andrzej Hajda
2020-06-24 21:18           ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200624114127.3016-4-a.hajda@samsung.com \
    --to=a.hajda@samsung.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=broonie@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jernej.skrabec@siol.net \
    --cc=jonas@kwiboo.se \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=m.szyprowski@samsung.com \
    --cc=narmstrong@baylibre.com \
    --cc=rafael@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).