From: Chengchang Tang <tangchengchang@xxxxxxxxxx> There will be a core dump when pretty is used as the JSON object hasn't been opened and closed properly. Before: $ rdma res show qp -jp -dd [ { "ifindex": 1, "ifname": "hns_1", "port": 1, "lqpn": 1, "type": "GSI", "state": "RTS", "sq-psn": 0, "comm": "ib_core" }, "drv_sq_wqe_cnt": 128, "drv_sq_max_gs": 2, "drv_rq_wqe_cnt": 512, "drv_rq_max_gs": 1, rdma: json_writer.c:130: jsonw_end: Assertion `self->depth > 0' failed. Aborted (core dumped) After: $ rdma res show qp -jp -dd [ { "ifindex": 2, "ifname": "hns_2", "port": 1, "lqpn": 1, "type": "GSI", "state": "RTS", "sq-psn": 0, "comm": "ib_core",{ "drv_sq_wqe_cnt": 128, "drv_sq_max_gs": 2, "drv_rq_wqe_cnt": 512, "drv_rq_max_gs": 1, "drv_ext_sge_sge_cnt": 256 } } ] Fixes: 331152752a97 ("rdma: print driver resource attributes") Signed-off-by: Chengchang Tang <tangchengchang@xxxxxxxxxx> Signed-off-by: Junxian Huang <huangjunxian6@xxxxxxxxxxxxx> --- rdma/utils.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rdma/utils.c b/rdma/utils.c index 09985069..dcf24337 100644 --- a/rdma/utils.c +++ b/rdma/utils.c @@ -926,7 +926,7 @@ void print_driver_table(struct rd *rd, struct nlattr *tb) return; if (rd->pretty_output) - newline_indent(rd); + open_json_object(NULL); /* * Driver attrs are tuples of {key, [print-type], value}. @@ -960,5 +960,9 @@ void print_driver_table(struct rd *rd, struct nlattr *tb) key = NULL; } } + + if (rd->pretty_output) + newline_indent(rd); + return; } -- 2.30.0