Commit db527397 authored by Heiko Carstens's avatar Heiko Carstens Committed by Vasily Gorbik

s390/uaccess: add default cases for __put_user_fn()/__get_user_fn()

Add default cases for __put_user_fn()/__get_user_fn(). This doesn't
fix anything since the functions are only called with sane values.

However we get rid of smatch warnings:
./arch/s390/include/asm/uaccess.h:143 __get_user_fn() error: uninitialized symbol 'rc'.
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 4366dd72
...@@ -60,6 +60,9 @@ raw_copy_to_user(void __user *to, const void *from, unsigned long n); ...@@ -60,6 +60,9 @@ raw_copy_to_user(void __user *to, const void *from, unsigned long n);
#define INLINE_COPY_TO_USER #define INLINE_COPY_TO_USER
#endif #endif
int __put_user_bad(void) __attribute__((noreturn));
int __get_user_bad(void) __attribute__((noreturn));
#ifdef CONFIG_HAVE_MARCH_Z10_FEATURES #ifdef CONFIG_HAVE_MARCH_Z10_FEATURES
#define __put_get_user_asm(to, from, size, spec) \ #define __put_get_user_asm(to, from, size, spec) \
...@@ -109,6 +112,9 @@ static __always_inline int __put_user_fn(void *x, void __user *ptr, unsigned lon ...@@ -109,6 +112,9 @@ static __always_inline int __put_user_fn(void *x, void __user *ptr, unsigned lon
(unsigned long *)x, (unsigned long *)x,
size, spec); size, spec);
break; break;
default:
__put_user_bad();
break;
} }
return rc; return rc;
} }
...@@ -139,6 +145,9 @@ static __always_inline int __get_user_fn(void *x, const void __user *ptr, unsign ...@@ -139,6 +145,9 @@ static __always_inline int __get_user_fn(void *x, const void __user *ptr, unsign
(unsigned long __user *)ptr, (unsigned long __user *)ptr,
size, spec); size, spec);
break; break;
default:
__get_user_bad();
break;
} }
return rc; return rc;
} }
...@@ -190,8 +199,6 @@ static inline int __get_user_fn(void *x, const void __user *ptr, unsigned long s ...@@ -190,8 +199,6 @@ static inline int __get_user_fn(void *x, const void __user *ptr, unsigned long s
}) })
int __put_user_bad(void) __attribute__((noreturn));
#define __get_user(x, ptr) \ #define __get_user(x, ptr) \
({ \ ({ \
int __gu_err = -EFAULT; \ int __gu_err = -EFAULT; \
...@@ -238,8 +245,6 @@ int __put_user_bad(void) __attribute__((noreturn)); ...@@ -238,8 +245,6 @@ int __put_user_bad(void) __attribute__((noreturn));
__get_user(x, ptr); \ __get_user(x, ptr); \
}) })
int __get_user_bad(void) __attribute__((noreturn));
unsigned long __must_check unsigned long __must_check
raw_copy_in_user(void __user *to, const void __user *from, unsigned long n); raw_copy_in_user(void __user *to, const void __user *from, unsigned long n);
......
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