diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2017-04-07 17:54:24 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-05-15 23:40:28 -0400 |
commit | 10503bf9435f304b7a74ebfdb8571dec001d751c (patch) | |
tree | 1efae156c35ac60153869339fc4d7c54b12c293d | |
parent | 82985258390e85289940d3663344197344e071f2 (diff) |
get rid of unused __strncpy_from_user() instances
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/cris/include/asm/uaccess.h | 6 | ||||
-rw-r--r-- | arch/m32r/include/asm/uaccess.h | 2 | ||||
-rw-r--r-- | arch/m32r/kernel/m32r_ksyms.c | 1 | ||||
-rw-r--r-- | arch/m32r/lib/usercopy.c | 8 | ||||
-rw-r--r-- | arch/microblaze/include/asm/uaccess.h | 4 | ||||
-rw-r--r-- | arch/mips/include/asm/uaccess.h | 54 | ||||
-rw-r--r-- | arch/mips/lib/strncpy_user.S | 6 | ||||
-rw-r--r-- | arch/mn10300/include/asm/uaccess.h | 1 | ||||
-rw-r--r-- | arch/mn10300/kernel/mn10300_ksyms.c | 1 | ||||
-rw-r--r-- | arch/mn10300/lib/usercopy.c | 8 | ||||
-rw-r--r-- | arch/xtensa/include/asm/uaccess.h | 3 |
11 files changed, 2 insertions, 92 deletions
diff --git a/arch/cris/include/asm/uaccess.h b/arch/cris/include/asm/uaccess.h index 98bfa4e060da..b0c6b077b632 100644 --- a/arch/cris/include/asm/uaccess.h +++ b/arch/cris/include/asm/uaccess.h | |||
@@ -173,12 +173,6 @@ extern unsigned long __copy_user_in(void *to, const void __user *from, unsigned | |||
173 | extern unsigned long __do_clear_user(void __user *to, unsigned long n); | 173 | extern unsigned long __do_clear_user(void __user *to, unsigned long n); |
174 | 174 | ||
175 | static inline long | 175 | static inline long |
176 | __strncpy_from_user(char *dst, const char __user *src, long count) | ||
177 | { | ||
178 | return __do_strncpy_from_user(dst, src, count); | ||
179 | } | ||
180 | |||
181 | static inline long | ||
182 | strncpy_from_user(char *dst, const char __user *src, long count) | 176 | strncpy_from_user(char *dst, const char __user *src, long count) |
183 | { | 177 | { |
184 | long res = -EFAULT; | 178 | long res = -EFAULT; |
diff --git a/arch/m32r/include/asm/uaccess.h b/arch/m32r/include/asm/uaccess.h index 0273d0481edc..496c4716dbc8 100644 --- a/arch/m32r/include/asm/uaccess.h +++ b/arch/m32r/include/asm/uaccess.h | |||
@@ -482,8 +482,6 @@ raw_copy_to_user(void __user *to, const void *from, unsigned long n) | |||
482 | 482 | ||
483 | long __must_check strncpy_from_user(char *dst, const char __user *src, | 483 | long __must_check strncpy_from_user(char *dst, const char __user *src, |
484 | long count); | 484 | long count); |
485 | long __must_check __strncpy_from_user(char *dst, | ||
486 | const char __user *src, long count); | ||
487 | 485 | ||
488 | /** | 486 | /** |
489 | * __clear_user: - Zero a block of memory in user space, with less checking. | 487 | * __clear_user: - Zero a block of memory in user space, with less checking. |
diff --git a/arch/m32r/kernel/m32r_ksyms.c b/arch/m32r/kernel/m32r_ksyms.c index a4d43b5cc102..68da6b800453 100644 --- a/arch/m32r/kernel/m32r_ksyms.c +++ b/arch/m32r/kernel/m32r_ksyms.c | |||
@@ -23,7 +23,6 @@ EXPORT_SYMBOL(__ioremap); | |||
23 | EXPORT_SYMBOL(iounmap); | 23 | EXPORT_SYMBOL(iounmap); |
24 | 24 | ||
25 | EXPORT_SYMBOL(strncpy_from_user); | 25 | EXPORT_SYMBOL(strncpy_from_user); |
26 | EXPORT_SYMBOL(__strncpy_from_user); | ||
27 | EXPORT_SYMBOL(clear_user); | 26 | EXPORT_SYMBOL(clear_user); |
28 | EXPORT_SYMBOL(__clear_user); | 27 | EXPORT_SYMBOL(__clear_user); |
29 | EXPORT_SYMBOL(strnlen_user); | 28 | EXPORT_SYMBOL(strnlen_user); |
diff --git a/arch/m32r/lib/usercopy.c b/arch/m32r/lib/usercopy.c index b3ef2c899f96..b723b11107c7 100644 --- a/arch/m32r/lib/usercopy.c +++ b/arch/m32r/lib/usercopy.c | |||
@@ -89,14 +89,6 @@ do { \ | |||
89 | #endif /* CONFIG_ISA_DUAL_ISSUE */ | 89 | #endif /* CONFIG_ISA_DUAL_ISSUE */ |
90 | 90 | ||
91 | long | 91 | long |
92 | __strncpy_from_user(char *dst, const char __user *src, long count) | ||
93 | { | ||
94 | long res; | ||
95 | __do_strncpy_from_user(dst, src, count, res); | ||
96 | return res; | ||
97 | } | ||
98 | |||
99 | long | ||
100 | strncpy_from_user(char *dst, const char __user *src, long count) | 92 | strncpy_from_user(char *dst, const char __user *src, long count) |
101 | { | 93 | { |
102 | long res = -EFAULT; | 94 | long res = -EFAULT; |
diff --git a/arch/microblaze/include/asm/uaccess.h b/arch/microblaze/include/asm/uaccess.h index 38f2c9ccef10..81f16aadbf9e 100644 --- a/arch/microblaze/include/asm/uaccess.h +++ b/arch/microblaze/include/asm/uaccess.h | |||
@@ -355,14 +355,12 @@ raw_copy_to_user(void __user *to, const void *from, unsigned long n) | |||
355 | */ | 355 | */ |
356 | extern int __strncpy_user(char *to, const char __user *from, int len); | 356 | extern int __strncpy_user(char *to, const char __user *from, int len); |
357 | 357 | ||
358 | #define __strncpy_from_user __strncpy_user | ||
359 | |||
360 | static inline long | 358 | static inline long |
361 | strncpy_from_user(char *dst, const char __user *src, long count) | 359 | strncpy_from_user(char *dst, const char __user *src, long count) |
362 | { | 360 | { |
363 | if (!access_ok(VERIFY_READ, src, 1)) | 361 | if (!access_ok(VERIFY_READ, src, 1)) |
364 | return -EFAULT; | 362 | return -EFAULT; |
365 | return __strncpy_from_user(dst, src, count); | 363 | return __strncpy_user(dst, src, count); |
366 | } | 364 | } |
367 | 365 | ||
368 | /* | 366 | /* |
diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h index 846628eee108..14d5f2e04971 100644 --- a/arch/mips/include/asm/uaccess.h +++ b/arch/mips/include/asm/uaccess.h | |||
@@ -967,60 +967,6 @@ __clear_user(void __user *addr, __kernel_size_t size) | |||
967 | __cl_size; \ | 967 | __cl_size; \ |
968 | }) | 968 | }) |
969 | 969 | ||
970 | extern long __strncpy_from_kernel_nocheck_asm(char *__to, const char __user *__from, long __len); | ||
971 | extern long __strncpy_from_user_nocheck_asm(char *__to, const char __user *__from, long __len); | ||
972 | |||
973 | /* | ||
974 | * __strncpy_from_user: - Copy a NUL terminated string from userspace, with less checking. | ||
975 | * @dst: Destination address, in kernel space. This buffer must be at | ||
976 | * least @count bytes long. | ||
977 | * @src: Source address, in user space. | ||
978 | * @count: Maximum number of bytes to copy, including the trailing NUL. | ||
979 | * | ||
980 | * Copies a NUL-terminated string from userspace to kernel space. | ||
981 | * Caller must check the specified block with access_ok() before calling | ||
982 | * this function. | ||
983 | * | ||
984 | * On success, returns the length of the string (not including the trailing | ||
985 | * NUL). | ||
986 | * | ||
987 | * If access to userspace fails, returns -EFAULT (some data may have been | ||
988 | * copied). | ||
989 | * | ||
990 | * If @count is smaller than the length of the string, copies @count bytes | ||
991 | * and returns @count. | ||
992 | */ | ||
993 | static inline long | ||
994 | __strncpy_from_user(char *__to, const char __user *__from, long __len) | ||
995 | { | ||
996 | long res; | ||
997 | |||
998 | if (eva_kernel_access()) { | ||
999 | __asm__ __volatile__( | ||
1000 | "move\t$4, %1\n\t" | ||
1001 | "move\t$5, %2\n\t" | ||
1002 | "move\t$6, %3\n\t" | ||
1003 | __MODULE_JAL(__strncpy_from_kernel_nocheck_asm) | ||
1004 | "move\t%0, $2" | ||
1005 | : "=r" (res) | ||
1006 | : "r" (__to), "r" (__from), "r" (__len) | ||
1007 | : "$2", "$3", "$4", "$5", "$6", __UA_t0, "$31", "memory"); | ||
1008 | } else { | ||
1009 | might_fault(); | ||
1010 | __asm__ __volatile__( | ||
1011 | "move\t$4, %1\n\t" | ||
1012 | "move\t$5, %2\n\t" | ||
1013 | "move\t$6, %3\n\t" | ||
1014 | __MODULE_JAL(__strncpy_from_user_nocheck_asm) | ||
1015 | "move\t%0, $2" | ||
1016 | : "=r" (res) | ||
1017 | : "r" (__to), "r" (__from), "r" (__len) | ||
1018 | : "$2", "$3", "$4", "$5", "$6", __UA_t0, "$31", "memory"); | ||
1019 | } | ||
1020 | |||
1021 | return res; | ||
1022 | } | ||
1023 | |||
1024 | extern long __strncpy_from_kernel_asm(char *__to, const char __user *__from, long __len); | 970 | extern long __strncpy_from_kernel_asm(char *__to, const char __user *__from, long __len); |
1025 | extern long __strncpy_from_user_asm(char *__to, const char __user *__from, long __len); | 971 | extern long __strncpy_from_user_asm(char *__to, const char __user *__from, long __len); |
1026 | 972 | ||
diff --git a/arch/mips/lib/strncpy_user.S b/arch/mips/lib/strncpy_user.S index 5267ca800b84..acdff66bd5d2 100644 --- a/arch/mips/lib/strncpy_user.S +++ b/arch/mips/lib/strncpy_user.S | |||
@@ -35,7 +35,6 @@ LEAF(__strncpy_from_\func\()_asm) | |||
35 | and v0, a1 | 35 | and v0, a1 |
36 | bnez v0, .Lfault\@ | 36 | bnez v0, .Lfault\@ |
37 | 37 | ||
38 | FEXPORT(__strncpy_from_\func\()_nocheck_asm) | ||
39 | move t0, zero | 38 | move t0, zero |
40 | move v1, a1 | 39 | move v1, a1 |
41 | .ifeqs "\func","kernel" | 40 | .ifeqs "\func","kernel" |
@@ -70,16 +69,12 @@ FEXPORT(__strncpy_from_\func\()_nocheck_asm) | |||
70 | #ifndef CONFIG_EVA | 69 | #ifndef CONFIG_EVA |
71 | /* Set aliases */ | 70 | /* Set aliases */ |
72 | .global __strncpy_from_user_asm | 71 | .global __strncpy_from_user_asm |
73 | .global __strncpy_from_user_nocheck_asm | ||
74 | .set __strncpy_from_user_asm, __strncpy_from_kernel_asm | 72 | .set __strncpy_from_user_asm, __strncpy_from_kernel_asm |
75 | .set __strncpy_from_user_nocheck_asm, __strncpy_from_kernel_nocheck_asm | ||
76 | EXPORT_SYMBOL(__strncpy_from_user_asm) | 73 | EXPORT_SYMBOL(__strncpy_from_user_asm) |
77 | EXPORT_SYMBOL(__strncpy_from_user_nocheck_asm) | ||
78 | #endif | 74 | #endif |
79 | 75 | ||
80 | __BUILD_STRNCPY_ASM kernel | 76 | __BUILD_STRNCPY_ASM kernel |
81 | EXPORT_SYMBOL(__strncpy_from_kernel_asm) | 77 | EXPORT_SYMBOL(__strncpy_from_kernel_asm) |
82 | EXPORT_SYMBOL(__strncpy_from_kernel_nocheck_asm) | ||
83 | 78 | ||
84 | #ifdef CONFIG_EVA | 79 | #ifdef CONFIG_EVA |
85 | .set push | 80 | .set push |
@@ -87,5 +82,4 @@ EXPORT_SYMBOL(__strncpy_from_kernel_nocheck_asm) | |||
87 | __BUILD_STRNCPY_ASM user | 82 | __BUILD_STRNCPY_ASM user |
88 | .set pop | 83 | .set pop |
89 | EXPORT_SYMBOL(__strncpy_from_user_asm) | 84 | EXPORT_SYMBOL(__strncpy_from_user_asm) |
90 | EXPORT_SYMBOL(__strncpy_from_user_nocheck_asm) | ||
91 | #endif | 85 | #endif |
diff --git a/arch/mn10300/include/asm/uaccess.h b/arch/mn10300/include/asm/uaccess.h index 2e04ebb711c4..5af468fd1359 100644 --- a/arch/mn10300/include/asm/uaccess.h +++ b/arch/mn10300/include/asm/uaccess.h | |||
@@ -290,7 +290,6 @@ raw_copy_to_user(void __user *to, const void *from, unsigned long n) | |||
290 | } | 290 | } |
291 | 291 | ||
292 | extern long strncpy_from_user(char *dst, const char __user *src, long count); | 292 | extern long strncpy_from_user(char *dst, const char __user *src, long count); |
293 | extern long __strncpy_from_user(char *dst, const char __user *src, long count); | ||
294 | extern long strnlen_user(const char __user *str, long n); | 293 | extern long strnlen_user(const char __user *str, long n); |
295 | extern unsigned long clear_user(void __user *mem, unsigned long len); | 294 | extern unsigned long clear_user(void __user *mem, unsigned long len); |
296 | extern unsigned long __clear_user(void __user *mem, unsigned long len); | 295 | extern unsigned long __clear_user(void __user *mem, unsigned long len); |
diff --git a/arch/mn10300/kernel/mn10300_ksyms.c b/arch/mn10300/kernel/mn10300_ksyms.c index 5e9f919635f0..66fb68d0ca8a 100644 --- a/arch/mn10300/kernel/mn10300_ksyms.c +++ b/arch/mn10300/kernel/mn10300_ksyms.c | |||
@@ -23,7 +23,6 @@ EXPORT_SYMBOL(memmove); | |||
23 | EXPORT_SYMBOL(memset); | 23 | EXPORT_SYMBOL(memset); |
24 | 24 | ||
25 | EXPORT_SYMBOL(strncpy_from_user); | 25 | EXPORT_SYMBOL(strncpy_from_user); |
26 | EXPORT_SYMBOL(__strncpy_from_user); | ||
27 | EXPORT_SYMBOL(clear_user); | 26 | EXPORT_SYMBOL(clear_user); |
28 | EXPORT_SYMBOL(__clear_user); | 27 | EXPORT_SYMBOL(__clear_user); |
29 | EXPORT_SYMBOL(strnlen_user); | 28 | EXPORT_SYMBOL(strnlen_user); |
diff --git a/arch/mn10300/lib/usercopy.c b/arch/mn10300/lib/usercopy.c index cece1799cc32..39626912de98 100644 --- a/arch/mn10300/lib/usercopy.c +++ b/arch/mn10300/lib/usercopy.c | |||
@@ -50,14 +50,6 @@ do { \ | |||
50 | } while (0) | 50 | } while (0) |
51 | 51 | ||
52 | long | 52 | long |
53 | __strncpy_from_user(char *dst, const char *src, long count) | ||
54 | { | ||
55 | long res; | ||
56 | __do_strncpy_from_user(dst, src, count, res); | ||
57 | return res; | ||
58 | } | ||
59 | |||
60 | long | ||
61 | strncpy_from_user(char *dst, const char *src, long count) | 53 | strncpy_from_user(char *dst, const char *src, long count) |
62 | { | 54 | { |
63 | long res = -EFAULT; | 55 | long res = -EFAULT; |
diff --git a/arch/xtensa/include/asm/uaccess.h b/arch/xtensa/include/asm/uaccess.h index c0714b471ef4..b8f152b6aaa5 100644 --- a/arch/xtensa/include/asm/uaccess.h +++ b/arch/xtensa/include/asm/uaccess.h | |||
@@ -278,13 +278,12 @@ clear_user(void *addr, unsigned long size) | |||
278 | 278 | ||
279 | 279 | ||
280 | extern long __strncpy_user(char *, const char *, long); | 280 | extern long __strncpy_user(char *, const char *, long); |
281 | #define __strncpy_from_user __strncpy_user | ||
282 | 281 | ||
283 | static inline long | 282 | static inline long |
284 | strncpy_from_user(char *dst, const char *src, long count) | 283 | strncpy_from_user(char *dst, const char *src, long count) |
285 | { | 284 | { |
286 | if (access_ok(VERIFY_READ, src, 1)) | 285 | if (access_ok(VERIFY_READ, src, 1)) |
287 | return __strncpy_from_user(dst, src, count); | 286 | return __strncpy_user(dst, src, count); |
288 | return -EFAULT; | 287 | return -EFAULT; |
289 | } | 288 | } |
290 | 289 | ||