DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] eal: cleanup strerror function
@ 2017-09-07 13:09 Bruce Richardson
  2017-09-07 17:51 ` Stephen Hemminger
  2017-09-15 10:47 ` Van Haaren, Harry
  0 siblings, 2 replies; 5+ messages in thread
From: Bruce Richardson @ 2017-09-07 13:09 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

When compiled on Ubuntu with extra warnings enabled, the rte_strerror()
function triggered a warning about an unused return value from
strerror_r(). Rather than always have this warning disabled, we fix this,
and in the process do some cleanup of the code so as to reduce the
complexity of the fix, e.g. not having the #ifdef macros inside the
snprintf call.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_eal/common/eal_common_errno.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_errno.c b/lib/librte_eal/common/eal_common_errno.c
index de48d8e..dc5b7c0 100644
--- a/lib/librte_eal/common/eal_common_errno.c
+++ b/lib/librte_eal/common/eal_common_errno.c
@@ -46,18 +46,20 @@ RTE_DEFINE_PER_LCORE(int, _rte_errno);
 const char *
 rte_strerror(int errnum)
 {
+	/* BSD puts a colon in the "unknown error" messages, Linux doesn't */
+#ifdef RTE_EXEC_ENV_BSDAPP
+	static const char *sep = ":";
+#else
+	static const char *sep = "";
+#endif
 #define RETVAL_SZ 256
 	static RTE_DEFINE_PER_LCORE(char[RETVAL_SZ], retval);
+	char *ret = RTE_PER_LCORE(retval);
 
 	/* since some implementations of strerror_r throw an error
 	 * themselves if errnum is too big, we handle that case here */
-	if (errnum > RTE_MAX_ERRNO)
-		snprintf(RTE_PER_LCORE(retval), RETVAL_SZ,
-#ifdef RTE_EXEC_ENV_BSDAPP
-				"Unknown error: %d", errnum);
-#else
-				"Unknown error %d", errnum);
-#endif
+	if (errnum >= RTE_MAX_ERRNO)
+		snprintf(ret, RETVAL_SZ, "Unknown error%s %d", sep, errnum);
 	else
 		switch (errnum){
 		case E_RTE_SECONDARY:
@@ -65,8 +67,10 @@ rte_strerror(int errnum)
 		case E_RTE_NO_CONFIG:
 			return "Missing rte_config structure";
 		default:
-			strerror_r(errnum, RTE_PER_LCORE(retval), RETVAL_SZ);
+			if (strerror_r(errnum, ret, RETVAL_SZ) != 0)
+				snprintf(ret, RETVAL_SZ, "Unknown error%s %d",
+						sep, errnum);
 		}
 
-	return RTE_PER_LCORE(retval);
+	return ret;
 }
-- 
2.7.4

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

* Re: [dpdk-dev] [PATCH] eal: cleanup strerror function
  2017-09-07 13:09 [dpdk-dev] [PATCH] eal: cleanup strerror function Bruce Richardson
@ 2017-09-07 17:51 ` Stephen Hemminger
  2017-09-08  9:03   ` Bruce Richardson
  2017-09-15 10:47 ` Van Haaren, Harry
  1 sibling, 1 reply; 5+ messages in thread
From: Stephen Hemminger @ 2017-09-07 17:51 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

On Thu,  7 Sep 2017 14:09:56 +0100
Bruce Richardson <bruce.richardson@intel.com> wrote:

> +	/* BSD puts a colon in the "unknown error" messages, Linux doesn't */
> +#ifdef RTE_EXEC_ENV_BSDAPP
> +	static const char *sep = ":";
> +#else
> +	static const char *sep = "";
> +#endif

This is seems unnecessary to me just have the message be different.

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

* Re: [dpdk-dev] [PATCH] eal: cleanup strerror function
  2017-09-07 17:51 ` Stephen Hemminger
@ 2017-09-08  9:03   ` Bruce Richardson
  0 siblings, 0 replies; 5+ messages in thread
From: Bruce Richardson @ 2017-09-08  9:03 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

On Thu, Sep 07, 2017 at 10:51:52AM -0700, Stephen Hemminger wrote:
> On Thu,  7 Sep 2017 14:09:56 +0100
> Bruce Richardson <bruce.richardson@intel.com> wrote:
> 
> > +	/* BSD puts a colon in the "unknown error" messages, Linux doesn't */
> > +#ifdef RTE_EXEC_ENV_BSDAPP
> > +	static const char *sep = ":";
> > +#else
> > +	static const char *sep = "";
> > +#endif
> 
> This is seems unnecessary to me just have the message be different.

I'd rather keep it consistent for the sake of the couple of lines of
code. What would be better is if there was a C variable we could use for
this to avoid macros, but I not aware of one right now that could work.
Again, open to suggestions on that. Even with keeping the macros, this
is still cleaner than the previous version.

/Bruce

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

* Re: [dpdk-dev] [PATCH] eal: cleanup strerror function
  2017-09-07 13:09 [dpdk-dev] [PATCH] eal: cleanup strerror function Bruce Richardson
  2017-09-07 17:51 ` Stephen Hemminger
@ 2017-09-15 10:47 ` Van Haaren, Harry
  2017-10-05 21:55   ` Thomas Monjalon
  1 sibling, 1 reply; 5+ messages in thread
From: Van Haaren, Harry @ 2017-09-15 10:47 UTC (permalink / raw)
  To: Richardson, Bruce, dev; +Cc: Richardson, Bruce

> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> Sent: Thursday, September 7, 2017 2:10 PM
> To: dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [dpdk-dev] [PATCH] eal: cleanup strerror function
> 
> When compiled on Ubuntu with extra warnings enabled, the rte_strerror()
> function triggered a warning about an unused return value from
> strerror_r(). Rather than always have this warning disabled, we fix this,
> and in the process do some cleanup of the code so as to reduce the
> complexity of the fix, e.g. not having the #ifdef macros inside the
> snprintf call.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: Harry van Haaren <harry.van.haaren@intel.com>

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

* Re: [dpdk-dev] [PATCH] eal: cleanup strerror function
  2017-09-15 10:47 ` Van Haaren, Harry
@ 2017-10-05 21:55   ` Thomas Monjalon
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2017-10-05 21:55 UTC (permalink / raw)
  To: Richardson, Bruce; +Cc: dev, Van Haaren, Harry

> > When compiled on Ubuntu with extra warnings enabled, the rte_strerror()
> > function triggered a warning about an unused return value from
> > strerror_r(). Rather than always have this warning disabled, we fix this,
> > and in the process do some cleanup of the code so as to reduce the
> > complexity of the fix, e.g. not having the #ifdef macros inside the
> > snprintf call.
> > 
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> Acked-by: Harry van Haaren <harry.van.haaren@intel.com>

Applied, thanks

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

end of thread, other threads:[~2017-10-05 21:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-07 13:09 [dpdk-dev] [PATCH] eal: cleanup strerror function Bruce Richardson
2017-09-07 17:51 ` Stephen Hemminger
2017-09-08  9:03   ` Bruce Richardson
2017-09-15 10:47 ` Van Haaren, Harry
2017-10-05 21:55   ` Thomas Monjalon

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