On Tue, Jan 08, 2013 at 04:03:17PM +0100, Ulrich Windl wrote: > >>> Yuanhan Liu <yuanhan....@linux.intel.com> schrieb am 08.01.2013 um 15:57 > >>> in > Nachricht <1357657073-27352-1-git-send-email-yuanhan....@linux.intel.com>: > > [...] > > 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/