Re: [PATCH for-next 2/4] devlink: fix print of uint64_t
From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2019-02-10 20:34:11
On Sun, 10 Feb 2019 20:28:47 +0200 Aya Levin [off-list ref] wrote:
quoted hunk ↗ jump to hunk
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); + } } 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.