Skip to content

Commit

Permalink
seq_buf: Make trace_seq_putmem_hex() support data longer than 8
Browse files Browse the repository at this point in the history
commit 6a2cbc5 upstream.

Since the raw memory 'data' does not go forward, it will dump repeated
data if the data length is more than 8. If we want to dump longer data
blocks, we need to repeatedly call macro SEQ_PUT_HEX_FIELD. I think it
is a bit redundant, and multiple function calls also affect the performance.

Link: https://lore.kernel.org/lkml/20210625122453.5e2fe304@oasis.local.home/
Link: https://lkml.kernel.org/r/20210626032156.47889-2-yun.zhou@windriver.com

Cc: stable@vger.kernel.org
Fixes: 6d2289f ("tracing: Make trace_seq_putmem_hex() more robust")
Signed-off-by: Yun Zhou <yun.zhou@windriver.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
zhouyun1306 authored and gregkh committed Jul 14, 2021
1 parent 0531e84 commit c556b93
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion lib/seq_buf.c
Original file line number Diff line number Diff line change
Expand Up @@ -243,12 +243,14 @@ int seq_buf_putmem_hex(struct seq_buf *s, const void *mem,
break;

/* j increments twice per loop */
len -= j / 2;
hex[j++] = ' ';

seq_buf_putmem(s, hex, j);
if (seq_buf_has_overflowed(s))
return -1;

len -= start_len;
data += start_len;
}
return 0;
}
Expand Down

0 comments on commit c556b93

Please sign in to comment.