Thread (28 messages) 28 messages, 6 authors, 2019-02-11

Re: [PATCH for-next 2/4] devlink: fix print of uint64_t

From: David Ahern <hidden>
Date: 2019-02-11 02:44:30

On 2/10/19 1:34 PM, Stephen Hemminger wrote:
On Sun, 10 Feb 2019 20:28:47 +0200
Aya Levin [off-list ref] wrote:
quoted
 This patch prints uint64_t with its corresponding format and avoid implicit
 cast to uint32_t.

Signed-off-by: Aya Levin <redacted>
Reviewed-by: Moshe Shemesh <redacted>
Reported-by: Maria Pasechnik <redacted>
---
 devlink/devlink.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/devlink/devlink.c b/devlink/devlink.c
index a05755385a49..46e2e41c5dfd 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -1628,7 +1628,14 @@ static void pr_out_u64(struct dl *dl, const char *name, uint64_t val)
 	if (val == (uint64_t) -1)
 		return pr_out_str(dl, name, "unlimited");
 
-	return pr_out_uint(dl, name, val);
+	if (dl->json_output) {
+		jsonw_u64_field(dl->jw, name, val);
+	} else {
+		if (g_indent_newline)
+			pr_out("%s %lu", name, val);
+		else
+			pr_out(" %s %lu", name, val);
I would expect the compiler to throw a warning when %lu is used for u64's.
quoted
+	}
 }
 
 static void pr_out_region_chunk_start(struct dl *dl, uint64_t addr)
More conditional code adds bloat and is a nuisance.
Why not use print_u64 that already exists.

I wish devlink used json_print in a more standard manner.
That's a general devlink problem that can be addressed outside of this
patch set. It is an example of what I meant by devlink not using more of
the infra from the iproute2 code.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help