aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2009-06-17 14:11:10 -0400
committerSteven Rostedt <rostedt@goodmis.org>2009-06-17 14:16:20 -0400
commit5f78abeebbf0a80975d719e11374535ca15396cb (patch)
tree8c5a5f11caadc1cb662152fb1ef84b5b1fa19bbb
parent0dcd4d6c3e5b17ccf88d41cb354bb4d57cb18cbf (diff)
downloadkernel_samsung_espresso10-5f78abeebbf0a80975d719e11374535ca15396cb.zip
kernel_samsung_espresso10-5f78abeebbf0a80975d719e11374535ca15396cb.tar.gz
kernel_samsung_espresso10-5f78abeebbf0a80975d719e11374535ca15396cb.tar.bz2
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>
-rw-r--r--kernel/trace/ring_buffer.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index 162da23..2e99dba 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