diff options
author | Tony Lindgren <tony@atomide.com> | 2021-07-27 11:25:08 +0300 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2021-07-27 11:25:08 +0300 |
commit | 353b7a55dcaf5fb8758e09ebe2ddf5f3adbac7c5 (patch) | |
tree | 081200957b3d8925cbe913020d45a4e3ba61a7a3 /lib/seq_buf.c | |
parent | 3ff340e24c9dd5cff9fc07d67914c5adf67f80d6 (diff) | |
parent | c68ef4ad180e09805fa46965d15e1dfadf09ffa5 (diff) |
Merge branch 'fixes-v5.14' into fixes
Diffstat (limited to 'lib/seq_buf.c')
-rw-r--r-- | lib/seq_buf.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/seq_buf.c b/lib/seq_buf.c index 707453f5d58e..0a68f7aa85d6 100644 --- a/lib/seq_buf.c +++ b/lib/seq_buf.c @@ -229,8 +229,10 @@ int seq_buf_putmem_hex(struct seq_buf *s, const void *mem, WARN_ON(s->size == 0); + BUILD_BUG_ON(MAX_MEMHEX_BYTES * 2 >= HEX_CHARS); + while (len) { - start_len = min(len, HEX_CHARS - 1); + start_len = min(len, MAX_MEMHEX_BYTES); #ifdef __BIG_ENDIAN for (i = 0, j = 0; i < start_len; i++) { #else @@ -243,12 +245,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; } @@ -285,7 +289,7 @@ int seq_buf_path(struct seq_buf *s, const struct path *path, const char *esc) } /** - * seq_buf_to_user - copy the squence buffer to user space + * seq_buf_to_user - copy the sequence buffer to user space * @s: seq_buf descriptor * @ubuf: The userspace memory location to copy to * @cnt: The amount to copy |