Commit 045ed31e authored by Dan Carpenter's avatar Dan Carpenter Committed by akpm

kfifo: fix kfifo_to_user() return type

The kfifo_to_user() macro is supposed to return zero for success or
negative error codes.  Unfortunately, there is a signedness bug so it
returns unsigned int.  This only affects callers which try to save the
result in ssize_t and as far as I can see the only place which does that
is line6_hwdep_read().

TL;DR: s/_uint/_int/.

Link: https://lkml.kernel.org/r/YrVL3OJVLlNhIMFs@kili
Fixes: 144ecf31 ("kfifo: fix kfifo_alloc() to return a signed int value")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Cc: Stefani Seibold <stefani@seibold.net>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 43c249ea
...@@ -688,7 +688,7 @@ __kfifo_uint_must_check_helper( \ ...@@ -688,7 +688,7 @@ __kfifo_uint_must_check_helper( \
* writer, you don't need extra locking to use these macro. * writer, you don't need extra locking to use these macro.
*/ */
#define kfifo_to_user(fifo, to, len, copied) \ #define kfifo_to_user(fifo, to, len, copied) \
__kfifo_uint_must_check_helper( \ __kfifo_int_must_check_helper( \
({ \ ({ \
typeof((fifo) + 1) __tmp = (fifo); \ typeof((fifo) + 1) __tmp = (fifo); \
void __user *__to = (to); \ void __user *__to = (to); \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment