Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dfe2a77f authored by Stefani Seibold's avatar Stefani Seibold Committed by Linus Torvalds
Browse files

kfifo: fix kfifo_alloc() and kfifo_init()



Fix kfifo_alloc() and kfifo_init() to alloc at least the requested number
of elements.  Since the kfifo operates on power of 2 the request size will
be rounded up to the next power of two.

Signed-off-by: default avatarStefani Seibold <stefani@seibold.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c759b35e
Loading
Loading
Loading
Loading
+2 −4
Original line number Original line Diff line number Diff line
@@ -42,8 +42,7 @@ int __kfifo_alloc(struct __kfifo *fifo, unsigned int size,
	 * round down to the next power of 2, since our 'let the indices
	 * round down to the next power of 2, since our 'let the indices
	 * wrap' technique works only in this case.
	 * wrap' technique works only in this case.
	 */
	 */
	if (!is_power_of_2(size))
	size = roundup_pow_of_two(size);
		size = rounddown_pow_of_two(size);


	fifo->in = 0;
	fifo->in = 0;
	fifo->out = 0;
	fifo->out = 0;
@@ -83,8 +82,7 @@ int __kfifo_init(struct __kfifo *fifo, void *buffer,
{
{
	size /= esize;
	size /= esize;


	if (!is_power_of_2(size))
	size = roundup_pow_of_two(size);
		size = rounddown_pow_of_two(size);


	fifo->in = 0;
	fifo->in = 0;
	fifo->out = 0;
	fifo->out = 0;