kfifo: fix sparse complaints

This patch fix complaints by the sparse tool when using kfifo_put() with
non scalar types like structures (i.e.
drivers/iio/industrialio-event.c).

Casting a pointer to the value and read this pointer instead of directly
casting the value will fix this.

The generated code is equal.

Signed-off-by: Stefani Seibold <stefani@seibold.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Stefani Seibold 2016-03-22 14:27:42 -07:00 committed by Linus Torvalds
parent ad4db3b24a
commit 21b2f44315

View File

@ -401,7 +401,7 @@ __kfifo_int_must_check_helper( \
((typeof(__tmp->type))__kfifo->data) : \ ((typeof(__tmp->type))__kfifo->data) : \
(__tmp->buf) \ (__tmp->buf) \
)[__kfifo->in & __tmp->kfifo.mask] = \ )[__kfifo->in & __tmp->kfifo.mask] = \
(typeof(*__tmp->type))__val; \ *(typeof(__tmp->type))&__val; \
smp_wmb(); \ smp_wmb(); \
__kfifo->in++; \ __kfifo->in++; \
} \ } \