tracing: Have seq_buf use full buffer
Currently seq_buf is full when all but one byte of the buffer is filled. Change it so that the seq_buf is full when all of the buffer is filled. Some of the functions would fill the buffer completely and report everything was fine. This was inconsistent with the max of size - 1. Changing this to be max of size makes all functions consistent. Link: http://lkml.kernel.org/r/20141104160222.502133196@goodmis.org Link: http://lkml.kernel.org/r/20141114011412.811957882@goodmis.org Tested-by: Jiri Kosina <jkosina@suse.cz> Acked-by: Jiri Kosina <jkosina@suse.cz> Reviewed-by: Petr Mladek <pmladek@suse.cz> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:

committed by
Steven Rostedt

父節點
9b77215382
當前提交
8cd709ae76
@@ -26,7 +26,7 @@
|
||||
*/
|
||||
static bool seq_buf_can_fit(struct seq_buf *s, size_t len)
|
||||
{
|
||||
return s->len + len < s->size;
|
||||
return s->len + len <= s->size;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -110,8 +110,11 @@ int seq_buf_bitmask(struct seq_buf *s, const unsigned long *maskp,
|
||||
WARN_ON(s->size == 0);
|
||||
|
||||
/*
|
||||
* The last byte of the buffer is used to determine if we
|
||||
* overflowed or not.
|
||||
* Note, because bitmap_scnprintf() only returns the number of bytes
|
||||
* written and not the number that would be written, we use the last
|
||||
* byte of the buffer to let us know if we overflowed. There's a small
|
||||
* chance that the bitmap could have fit exactly inside the buffer, but
|
||||
* it's not that critical if that does happen.
|
||||
*/
|
||||
if (len > 1) {
|
||||
ret = bitmap_scnprintf(s->buffer + s->len, len, maskp, nmaskbits);
|
||||
|
Reference in New Issue
Block a user