diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2020-05-22 15:52:03 -0700 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2020-05-22 16:09:00 -0700 |
commit | 9afcc71b4f85ee9c9604c9b8349bac0eed44aa63 (patch) | |
tree | 91908c6c4e6ca66310b8383d5001d82821848888 /arch/xtensa | |
parent | c22f9075044057f130f6b73a0638a2eb78f459ad (diff) | |
download | lwn-9afcc71b4f85ee9c9604c9b8349bac0eed44aa63.tar.gz lwn-9afcc71b4f85ee9c9604c9b8349bac0eed44aa63.zip |
xtensa: fix error paths in __get_user_{check,size}
Error paths in __get_user_check and __get_user_size directly assing 0 to
the result. It causes the following sparse warnings:
sparse: warning: Using plain integer as NULL pointer
Convert 0 to the type pointed to by the user pointer before assigning it.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa')
-rw-r--r-- | arch/xtensa/include/asm/uaccess.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/xtensa/include/asm/uaccess.h b/arch/xtensa/include/asm/uaccess.h index 445bb4cf3c28..0fd9b4086ae2 100644 --- a/arch/xtensa/include/asm/uaccess.h +++ b/arch/xtensa/include/asm/uaccess.h @@ -184,7 +184,7 @@ __asm__ __volatile__( \ if (access_ok(__gu_addr, size)) \ __get_user_size((x), __gu_addr, (size), __gu_err); \ else \ - (x) = 0; \ + (x) = (__typeof__(*(ptr)))0; \ __gu_err; \ }) @@ -202,13 +202,15 @@ do { \ u64 __x; \ if (unlikely(__copy_from_user(&__x, ptr, 8))) { \ retval = -EFAULT; \ - (x) = 0; \ + (x) = (__typeof__(*(ptr)))0; \ } else { \ (x) = *(__force __typeof__(*(ptr)) *)&__x; \ } \ break; \ } \ - default: (x) = 0; __get_user_bad(); \ + default: \ + (x) = (__typeof__(*(ptr)))0; \ + __get_user_bad(); \ } \ } while (0) |