summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2017-04-07 17:54:24 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2017-05-15 23:40:28 -0400
commit10503bf9435f304b7a74ebfdb8571dec001d751c (patch)
tree1efae156c35ac60153869339fc4d7c54b12c293d
parent82985258390e85289940d3663344197344e071f2 (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.h6
-rw-r--r--arch/m32r/include/asm/uaccess.h2
-rw-r--r--arch/m32r/kernel/m32r_ksyms.c1
-rw-r--r--arch/m32r/lib/usercopy.c8
-rw-r--r--arch/microblaze/include/asm/uaccess.h4
-rw-r--r--arch/mips/include/asm/uaccess.h54
-rw-r--r--arch/mips/lib/strncpy_user.S6
-rw-r--r--arch/mn10300/include/asm/uaccess.h1
-rw-r--r--arch/mn10300/kernel/mn10300_ksyms.c1
-rw-r--r--arch/mn10300/lib/usercopy.c8
-rw-r--r--arch/xtensa/include/asm/uaccess.h3
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
173extern unsigned long __do_clear_user(void __user *to, unsigned long n); 173extern unsigned long __do_clear_user(void __user *to, unsigned long n);
174 174
175static inline long 175static 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
181static inline long
182strncpy_from_user(char *dst, const char __user *src, long count) 176strncpy_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
483long __must_check strncpy_from_user(char *dst, const char __user *src, 483long __must_check strncpy_from_user(char *dst, const char __user *src,
484 long count); 484 long count);
485long __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);
23EXPORT_SYMBOL(iounmap); 23EXPORT_SYMBOL(iounmap);
24 24
25EXPORT_SYMBOL(strncpy_from_user); 25EXPORT_SYMBOL(strncpy_from_user);
26EXPORT_SYMBOL(__strncpy_from_user);
27EXPORT_SYMBOL(clear_user); 26EXPORT_SYMBOL(clear_user);
28EXPORT_SYMBOL(__clear_user); 27EXPORT_SYMBOL(__clear_user);
29EXPORT_SYMBOL(strnlen_user); 28EXPORT_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
91long 91long
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
99long
100strncpy_from_user(char *dst, const char __user *src, long count) 92strncpy_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 */
356extern int __strncpy_user(char *to, const char __user *from, int len); 356extern int __strncpy_user(char *to, const char __user *from, int len);
357 357
358#define __strncpy_from_user __strncpy_user
359
360static inline long 358static inline long
361strncpy_from_user(char *dst, const char __user *src, long count) 359strncpy_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
970extern long __strncpy_from_kernel_nocheck_asm(char *__to, const char __user *__from, long __len);
971extern 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 */
993static 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
1024extern long __strncpy_from_kernel_asm(char *__to, const char __user *__from, long __len); 970extern long __strncpy_from_kernel_asm(char *__to, const char __user *__from, long __len);
1025extern long __strncpy_from_user_asm(char *__to, const char __user *__from, long __len); 971extern 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
38FEXPORT(__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
76EXPORT_SYMBOL(__strncpy_from_user_asm) 73EXPORT_SYMBOL(__strncpy_from_user_asm)
77EXPORT_SYMBOL(__strncpy_from_user_nocheck_asm)
78#endif 74#endif
79 75
80__BUILD_STRNCPY_ASM kernel 76__BUILD_STRNCPY_ASM kernel
81EXPORT_SYMBOL(__strncpy_from_kernel_asm) 77EXPORT_SYMBOL(__strncpy_from_kernel_asm)
82EXPORT_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
89EXPORT_SYMBOL(__strncpy_from_user_asm) 84EXPORT_SYMBOL(__strncpy_from_user_asm)
90EXPORT_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
292extern long strncpy_from_user(char *dst, const char __user *src, long count); 292extern long strncpy_from_user(char *dst, const char __user *src, long count);
293extern long __strncpy_from_user(char *dst, const char __user *src, long count);
294extern long strnlen_user(const char __user *str, long n); 293extern long strnlen_user(const char __user *str, long n);
295extern unsigned long clear_user(void __user *mem, unsigned long len); 294extern unsigned long clear_user(void __user *mem, unsigned long len);
296extern unsigned long __clear_user(void __user *mem, unsigned long len); 295extern 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);
23EXPORT_SYMBOL(memset); 23EXPORT_SYMBOL(memset);
24 24
25EXPORT_SYMBOL(strncpy_from_user); 25EXPORT_SYMBOL(strncpy_from_user);
26EXPORT_SYMBOL(__strncpy_from_user);
27EXPORT_SYMBOL(clear_user); 26EXPORT_SYMBOL(clear_user);
28EXPORT_SYMBOL(__clear_user); 27EXPORT_SYMBOL(__clear_user);
29EXPORT_SYMBOL(strnlen_user); 28EXPORT_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
52long 52long
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
60long
61strncpy_from_user(char *dst, const char *src, long count) 53strncpy_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
280extern long __strncpy_user(char *, const char *, long); 280extern long __strncpy_user(char *, const char *, long);
281#define __strncpy_from_user __strncpy_user
282 281
283static inline long 282static inline long
284strncpy_from_user(char *dst, const char *src, long count) 283strncpy_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