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) \
|
#define INIT_KFIFO(name) \
|
||||||
name = __kfifo_initializer(sizeof(name##kfifo_buffer) - \
|
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
|
* DEFINE_KFIFO - macro to define and initialize a kfifo
|
||||||
|
Loading…
Reference in New Issue
Block a user