lkml.org 
[lkml]   [2017]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] lib/usercopy: fix sparse errors
On Sat, Dec 09, 2017 at 05:24:24PM +0100, Christophe Leroy wrote:
> CHECK lib/usercopy.c
> lib/usercopy.c:26:13: warning: incorrect type in argument 1 (different address spaces)
> lib/usercopy.c:26:13: expected void const volatile [noderef] <asn:1>*<noident>
> lib/usercopy.c:26:13: got void *to
> lib/usercopy.c:27:34: warning: incorrect type in argument 1 (different address spaces)
> lib/usercopy.c:27:34: expected void const volatile *p
> lib/usercopy.c:27:34: got void const [noderef] <asn:1>*from
> lib/usercopy.c:28:38: warning: incorrect type in argument 1 (different address spaces)
> lib/usercopy.c:28:38: expected void [noderef] <asn:1>*to
> lib/usercopy.c:28:38: got void *to
> lib/usercopy.c:28:42: warning: incorrect type in argument 2 (different address spaces)
> lib/usercopy.c:28:42: expected void const *from
> lib/usercopy.c:28:42: got void const [noderef] <asn:1>*from
> lib/usercopy.c:23:15: error: symbol '_copy_to_user' redeclared with different type (originally declared at ./include/linux/uaccess.h:140) - incompatible argument 1 (different address spaces)
> CC lib/usercopy.o
>
> Fixes: d597580d37377 ("generic ...copy_..._user primitives")
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> ---
> lib/usercopy.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/usercopy.c b/lib/usercopy.c
> index 15e2e6f..3744b2a 100644
> --- a/lib/usercopy.c
> +++ b/lib/usercopy.c
> @@ -20,7 +20,7 @@ EXPORT_SYMBOL(_copy_from_user);
> #endif
>
> #ifndef INLINE_COPY_TO_USER
> -unsigned long _copy_to_user(void *to, const void __user *from, unsigned long n)
> +unsigned long _copy_to_user(void __user *to, const void *from, unsigned long n)
> {
> might_fault();
> if (likely(access_ok(VERIFY_WRITE, to, n))) {
> --

Hi,

The change is good.
The commit message would better simply describe the problem instead
of describing the symptom. For example, something like:
The function _copy_to_user() is used to copy to address space.
As such, the destination pointer should be annotated with
'__user'.
However, the function has the annotation wrongly, on the
source instead of the destination (copy & paste error?).
Fix this by moving the __user annotation to the correct
argument.


-- Luc Van Oostenryck

\
 
 \ /
  Last update: 2017-12-17 18:22    [W:0.036 / U:0.696 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site