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);
}
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)
{
int i = 1;
int i = 0;
if (dl->json_output)
jsonw_start_array(dl->jw);
else
pr_out("\n");
while (i < len) {
if (dl->json_output) {
if (dl->json_output)
jsonw_printf(dl->jw, "%d", data[i]);
} else {
pr_out(" %02x", data[i]);
if (!(i % 16))
pr_out("\n");
}
else
pr_out("%02x ", data[i]);
i++;
if (!dl->json_output && is_binary_eol(i))
__pr_out_newline();
}
if (dl->json_output)
jsonw_end_array(dl->jw);
else if ((i - 1) % 16)
pr_out("\n");
else if (!is_binary_eol(i))
__pr_out_newline();
}
static void pr_out_str_value(struct dl *dl, const char *value)