From: Dan Carpenter Date: Fri, 24 Jun 2022 05:30:04 +0000 (+0300) Subject: kfifo: fix kfifo_to_user() return type X-Git-Tag: baikal/mips/sdk5.9~171 X-Git-Url: https://git.baikalelectronics.ru/sdk/?a=commitdiff_plain;h=ace38563a3257f36673aed22ff99fe03e80682fc;p=kernel.git kfifo: fix kfifo_to_user() return type [ Upstream commit 773ac7caabcbbae504658d302e2d268817b2147d ] 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: 77b8f66938e3 ("kfifo: fix kfifo_alloc() to return a signed int value") Signed-off-by: Dan Carpenter Cc: Stefani Seibold Cc: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Sasha Levin --- diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h index 86249476b57f4..0b35a41440ff1 100644 --- a/include/linux/kfifo.h +++ b/include/linux/kfifo.h @@ -688,7 +688,7 @@ __kfifo_uint_must_check_helper( \ * writer, you don't need extra locking to use these macro. */ #define kfifo_to_user(fifo, to, len, copied) \ -__kfifo_uint_must_check_helper( \ +__kfifo_int_must_check_helper( \ ({ \ typeof((fifo) + 1) __tmp = (fifo); \ void __user *__to = (to); \