Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b1195c0e authored by James Bottomley's avatar James Bottomley
Browse files

[PARISC] update parisc to use generic strncpy_from_user()

parent 8275b91a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ config PARISC
	select IRQ_PER_CPU
	select ARCH_HAVE_NMI_SAFE_CMPXCHG
	select GENERIC_SMP_IDLE_THREAD
	select GENERIC_STRNCPY_FROM_USER

	help
	  The PA-RISC microprocessor is designed by Hewlett-Packard and used
+2 −3
Original line number Diff line number Diff line
@@ -218,15 +218,14 @@ struct exception_data {
extern unsigned long lcopy_to_user(void __user *, const void *, unsigned long);
extern unsigned long lcopy_from_user(void *, const void __user *, unsigned long);
extern unsigned long lcopy_in_user(void __user *, const void __user *, unsigned long);
extern long lstrncpy_from_user(char *, const char __user *, long);
extern long strncpy_from_user(char *, const char __user *, long);
extern unsigned lclear_user(void __user *,unsigned long);
extern long lstrnlen_user(const char __user *,long);

/*
 * Complex access routines -- macros
 */
#define user_addr_max() (~0UL)

#define strncpy_from_user lstrncpy_from_user
#define strnlen_user lstrnlen_user
#define strlen_user(str) lstrnlen_user(str, 0x7fffffffL)
#define clear_user lclear_user
+0 −1
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ EXPORT_SYMBOL(__cmpxchg_u64);
#endif

#include <asm/uaccess.h>
EXPORT_SYMBOL(lstrncpy_from_user);
EXPORT_SYMBOL(lclear_user);
EXPORT_SYMBOL(lstrnlen_user);

+0 −41
Original line number Diff line number Diff line
@@ -60,47 +60,6 @@
	bv          %r0(%r1)
	.endm

	/*
	 * long lstrncpy_from_user(char *dst, const char *src, long n)
	 *
	 * Returns -EFAULT if exception before terminator,
	 *         N if the entire buffer filled,
	 *         otherwise strlen (i.e. excludes zero byte)
	 */

ENTRY(lstrncpy_from_user)
	.proc
	.callinfo NO_CALLS
	.entry
	comib,=     0,%r24,$lsfu_done
	copy        %r24,%r23
	get_sr
1:      ldbs,ma     1(%sr1,%r25),%r1
$lsfu_loop:
	stbs,ma     %r1,1(%r26)
	comib,=,n   0,%r1,$lsfu_done
	addib,<>,n  -1,%r24,$lsfu_loop
2:      ldbs,ma     1(%sr1,%r25),%r1
$lsfu_done:
	sub         %r23,%r24,%r28
$lsfu_exit:
	bv          %r0(%r2)
	nop
	.exit
ENDPROC(lstrncpy_from_user)

	.section .fixup,"ax"
3:      fixup_branch $lsfu_exit
	ldi         -EFAULT,%r28
	.previous

	.section __ex_table,"aw"
	ASM_ULONG_INSN 1b,3b
	ASM_ULONG_INSN 2b,3b
	.previous

	.procend

	/*
	 * unsigned long lclear_user(void *to, unsigned long n)
	 *