diff options
author | Steven Rostedt <srostedt@redhat.com> | 2009-06-17 14:11:10 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2009-06-17 14:16:20 -0400 |
commit | 5f78abeebbf0a80975d719e11374535ca15396cb (patch) | |
tree | 8c5a5f11caadc1cb662152fb1ef84b5b1fa19bbb /kernel/trace | |
parent | 0dcd4d6c3e5b17ccf88d41cb354bb4d57cb18cbf (diff) | |
download | linux-5f78abeebbf0a80975d719e11374535ca15396cb.tar.gz linux-5f78abeebbf0a80975d719e11374535ca15396cb.tar.bz2 linux-5f78abeebbf0a80975d719e11374535ca15396cb.zip |
ring-buffer: check for less than two in size allocation
The ring buffer must have at least two pages allocated for the
reader page swap to work.
The page count check will miss the case of a zero size passed in.
Even though a zero size ring buffer would probably fail an allocation,
making the min size check for less than two instead of equal to one makes
the code a bit more robust.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
-rw-r--r-- | kernel/trace/ring_buffer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 162da2305cbc..2e99dba6dc48 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -657,8 +657,8 @@ struct ring_buffer *__ring_buffer_alloc(unsigned long size, unsigned flags, buffer->reader_lock_key = key; /* need at least two pages */ - if (buffer->pages == 1) - buffer->pages++; + if (buffer->pages < 2) + buffer->pages = 2; /* * In case of non-hotplug cpu, if the ring-buffer is allocated |