include/linux/kfifo.h: fix INIT_KFIFO()
DECLARE_KFIFO creates a union with a struct kfifo and a buffer array with size [size + sizeof(struct kfifo)]. INIT_KFIFO then sets the buffer pointer in struct kfifo to point to the beginning of the buffer array which means that the first call to kfifo_in will overwrite members of the struct kfifo. Signed-off-by: David Härdeman <david@hardeman.nu> Acked-by: Stefani Seibold <stefani@seibold.net> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a3a2e76c77
commit
530cd330dc
|
@ -86,7 +86,8 @@ union { \
|
|||
*/
|
||||
#define INIT_KFIFO(name) \
|
||||
name = __kfifo_initializer(sizeof(name##kfifo_buffer) - \
|
||||
sizeof(struct kfifo), name##kfifo_buffer)
|
||||
sizeof(struct kfifo), \
|
||||
name##kfifo_buffer + sizeof(struct kfifo))
|
||||
|
||||
/**
|
||||
* DEFINE_KFIFO - macro to define and initialize a kfifo
|
||||
|
|
Loading…
Reference in New Issue