diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2020-05-22 19:54:32 +0200 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2020-05-22 23:32:13 +0200 |
commit | 3ac4a615bdb10ee7df8818ff107f974322e4c190 (patch) | |
tree | ac38cd5af5bdc933ae4ca6cf349928d823d47fba /arch/xtensa/include/asm/uaccess.h | |
parent | Linux 5.7-rc6 (diff) | |
download | linux-3ac4a615bdb10ee7df8818ff107f974322e4c190.tar.xz linux-3ac4a615bdb10ee7df8818ff107f974322e4c190.zip |
xtensa: add missing __user annotations to __{get,put}_user_check
__get_user_check and __put_user_check use temporary pointer but don't
mark it as __user, resulting in sparse warnings:
sparse: warning: incorrect type in initializer (different address spaces)
sparse: expected long *__pu_addr
sparse: got long [noderef] <asn:1> *ret
sparse: warning: incorrect type in argument 1 (different address spaces)
sparse: expected void [noderef] <asn:1> *to
sparse: got long *__pu_addr
Add __user annotation to temporary pointer in __get_user_check and
__put_user_check.
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/include/asm/uaccess.h')
-rw-r--r-- | arch/xtensa/include/asm/uaccess.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/xtensa/include/asm/uaccess.h b/arch/xtensa/include/asm/uaccess.h index 47b7702aaa40..754a7c96b9da 100644 --- a/arch/xtensa/include/asm/uaccess.h +++ b/arch/xtensa/include/asm/uaccess.h @@ -84,7 +84,7 @@ extern long __put_user_bad(void); #define __put_user_check(x, ptr, size) \ ({ \ long __pu_err = -EFAULT; \ - __typeof__(*(ptr)) *__pu_addr = (ptr); \ + __typeof__(*(ptr)) __user *__pu_addr = (ptr); \ if (access_ok(__pu_addr, size)) \ __put_user_size((x), __pu_addr, (size), __pu_err); \ __pu_err; \ @@ -180,7 +180,7 @@ __asm__ __volatile__( \ #define __get_user_check(x, ptr, size) \ ({ \ long __gu_err = -EFAULT; \ - const __typeof__(*(ptr)) *__gu_addr = (ptr); \ + const __typeof__(*(ptr)) __user *__gu_addr = (ptr); \ if (access_ok(__gu_addr, size)) \ __get_user_size((x), __gu_addr, (size), __gu_err); \ else \ |