devlink: Fix binary values print

Fix function pr_out_binary_value() to start printing the binary buffer
from offset 0 instead of offset 1. Remove redundant new line at the
beginning of the output

Example:
With patch:
 mlx5e_txqsq:
   05 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00
   00 00 00 00 00 00 00 00 8e 6e 3a 13 07 00 00 00
   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   c0
Without patch
  mlx5e_txqsq:

  00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 8e 6e 3a 13 07 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0

Fixes: 844a61764c ("devlink: Add helper functions for name and value separately")
Signed-off-by: Aya Levin <ayal@mellanox.com>
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
Aya Levin 2019-07-10 14:03:20 +03:00 committed by Stephen Hemminger
parent b4d97ef57f
commit 1d05cca2fd
1 changed files with 13 additions and 11 deletions

View File

@ -1779,29 +1779,31 @@ static void pr_out_uint64_value(struct dl *dl, uint64_t value)
pr_out(" %"PRIu64, value); pr_out(" %"PRIu64, value);
} }
static bool is_binary_eol(int i)
{
return !(i%16);
}
static void pr_out_binary_value(struct dl *dl, uint8_t *data, uint32_t len) static void pr_out_binary_value(struct dl *dl, uint8_t *data, uint32_t len)
{ {
int i = 1; int i = 0;
if (dl->json_output) if (dl->json_output)
jsonw_start_array(dl->jw); jsonw_start_array(dl->jw);
else
pr_out("\n");
while (i < len) { while (i < len) {
if (dl->json_output) { if (dl->json_output)
jsonw_printf(dl->jw, "%d", data[i]); jsonw_printf(dl->jw, "%d", data[i]);
} else { else
pr_out(" %02x", data[i]); pr_out("%02x ", data[i]);
if (!(i % 16))
pr_out("\n");
}
i++; i++;
if (!dl->json_output && is_binary_eol(i))
__pr_out_newline();
} }
if (dl->json_output) if (dl->json_output)
jsonw_end_array(dl->jw); jsonw_end_array(dl->jw);
else if ((i - 1) % 16) else if (!is_binary_eol(i))
pr_out("\n"); __pr_out_newline();
} }
static void pr_out_str_value(struct dl *dl, const char *value) static void pr_out_str_value(struct dl *dl, const char *value)