Re: Antw: [PATCH 0/5] kfifo cleanup and log based kfifo API

From: Yuanhan Liu
Date: Tue Jan 08 2013 - 10:28:24 EST


On Tue, Jan 08, 2013 at 04:03:17PM +0100, Ulrich Windl wrote:
> >>> Yuanhan Liu <yuanhan.liu@xxxxxxxxxxxxxxx> schrieb am 08.01.2013 um 15:57 in
> Nachricht <1357657073-27352-1-git-send-email-yuanhan.liu@xxxxxxxxxxxxxxx>:
>
> [...]
> > My proposal is to replace kfifo_init with kfifo_alloc, where it
> > allocate buffer and maintain fifo size inside kfifo. Then we can
> > remove buggy kfifo_init.
> [...]
>
> Spontaneously I feel that emitting a critical message if the requested size is not a power of two would be a good idea,

Hi Ulrich,

If we can emit all such critical message at compile time, it would
be good then. But we can't, as fifo size is runtime determinated in
quite many cases.

> as well as (in that case) rounding up to the next power of two instead of rounding down seems not too stupid ;-)

There are 2 issues, first, you just can't round the fifo size up to
power of 2 for kfifo_init as fifo buffer is allocated outside. And if
you do, you may access memory outside the buffer.

Second, round up to power of 2 inside kfifo_alloc and DECLARE_KFIFO is
simple and should work. But it wastes memory(by allocating more memory)
without notifing caller.

So, per discussed with Stefani, we better to change the API be log aware
to root fix this kind of potential issue.


Thanks.

--yliu
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/