Skip to content

Commit 1260dea

Browse files
committed
parisc: Drop strnlen_user() in favour of generic version
As suggested by Arnd Bergmann, drop the parisc version of strnlen_user() and switch to the generic version. Suggested-by: Arnd Bergmann <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Signed-off-by: Helge Deller <[email protected]>
1 parent 3da6379 commit 1260dea

File tree

4 files changed

+1
-38
lines changed

4 files changed

+1
-38
lines changed

arch/parisc/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ config PARISC
1010
select ARCH_HAS_ELF_RANDOMIZE
1111
select ARCH_HAS_STRICT_KERNEL_RWX
1212
select ARCH_HAS_UBSAN_SANITIZE_ALL
13-
select ARCH_HAS_STRNLEN_USER
1413
select ARCH_NO_SG_CHAIN
1514
select ARCH_SUPPORTS_HUGETLBFS if PA20
1615
select ARCH_SUPPORTS_MEMORY_FAILURE

arch/parisc/include/asm/uaccess.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,13 +201,12 @@ struct exception_table_entry {
201201

202202
extern long strncpy_from_user(char *, const char __user *, long);
203203
extern unsigned lclear_user(void __user *, unsigned long);
204-
extern long lstrnlen_user(const char __user *, long);
204+
extern __must_check long strnlen_user(const char __user *src, long n);
205205
/*
206206
* Complex access routines -- macros
207207
*/
208208
#define user_addr_max() (~0UL)
209209

210-
#define strnlen_user lstrnlen_user
211210
#define clear_user lclear_user
212211
#define __clear_user lclear_user
213212

arch/parisc/kernel/parisc_ksyms.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ EXPORT_SYMBOL(__xchg64);
3232

3333
#include <linux/uaccess.h>
3434
EXPORT_SYMBOL(lclear_user);
35-
EXPORT_SYMBOL(lstrnlen_user);
3635

3736
#ifndef CONFIG_64BIT
3837
/* Needed so insmod can set dp value */

arch/parisc/lib/lusercopy.S

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -67,40 +67,6 @@ $lclu_done:
6767
ENDPROC_CFI(lclear_user)
6868

6969

70-
/*
71-
* long lstrnlen_user(char *s, long n)
72-
*
73-
* Returns 0 if exception before zero byte or reaching N,
74-
* N+1 if N would be exceeded,
75-
* else strlen + 1 (i.e. includes zero byte).
76-
*/
77-
78-
ENTRY_CFI(lstrnlen_user)
79-
comib,= 0,%r25,$lslen_nzero
80-
copy %r26,%r24
81-
get_sr
82-
1: ldbs,ma 1(%sr1,%r26),%r1
83-
$lslen_loop:
84-
comib,=,n 0,%r1,$lslen_done
85-
addib,<> -1,%r25,$lslen_loop
86-
2: ldbs,ma 1(%sr1,%r26),%r1
87-
$lslen_done:
88-
bv %r0(%r2)
89-
sub %r26,%r24,%r28
90-
91-
$lslen_nzero:
92-
b $lslen_done
93-
ldo 1(%r26),%r26 /* special case for N == 0 */
94-
95-
3: b $lslen_done
96-
copy %r24,%r26 /* reset r26 so 0 is returned on fault */
97-
98-
ASM_EXCEPTIONTABLE_ENTRY(1b,3b)
99-
ASM_EXCEPTIONTABLE_ENTRY(2b,3b)
100-
101-
ENDPROC_CFI(lstrnlen_user)
102-
103-
10470
/*
10571
* unsigned long pa_memcpy(void *dstp, const void *srcp, unsigned long len)
10672
*

0 commit comments

Comments
 (0)