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

Commit 2c66f623 authored by David Miller's avatar David Miller Committed by Linus Torvalds
Browse files

sparc: use the new generic strnlen_user() function



This throws away the sparc-specific functions in favor of the generic
optimized version.

Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 5723aa99
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ config SPARC
	select GENERIC_CMOS_UPDATE
	select GENERIC_CLOCKEVENTS
	select GENERIC_STRNCPY_FROM_USER
	select GENERIC_STRNLEN_USER

config SPARC32
	def_bool !64BIT
+4 −18
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

#ifndef __ASSEMBLY__

#include <asm/processor.h>

#define ARCH_HAS_SORT_EXTABLE
#define ARCH_HAS_SEARCH_EXTABLE

@@ -304,24 +306,8 @@ static inline unsigned long clear_user(void __user *addr, unsigned long n)
		return n;
}

extern long __strlen_user(const char __user *);
extern long __strnlen_user(const char __user *, long len);

static inline long strlen_user(const char __user *str)
{
	if (!access_ok(VERIFY_READ, str, 0))
		return 0;
	else
		return __strlen_user(str);
}

static inline long strnlen_user(const char __user *str, long len)
{
	if (!access_ok(VERIFY_READ, str, 0))
		return 0;
	else
		return __strnlen_user(str, len);
}
extern __must_check long strlen_user(const char __user *str);
extern __must_check long strnlen_user(const char __user *str, long n);

#endif  /* __ASSEMBLY__ */

+4 −4
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@

#ifndef __ASSEMBLY__

#include <asm/processor.h>

/*
 * Sparc64 is segmented, though more like the M68K than the I386.
 * We use the secondary ASI to address user memory, which references a
@@ -257,11 +259,9 @@ extern unsigned long __must_check __clear_user(void __user *, unsigned long);

#define clear_user __clear_user

extern long __strlen_user(const char __user *);
extern long __strnlen_user(const char __user *, long len);
extern __must_check long strlen_user(const char __user *str);
extern __must_check long strnlen_user(const char __user *str, long n);

#define strlen_user __strlen_user
#define strnlen_user __strnlen_user
#define __copy_to_user_inatomic ___copy_to_user
#define __copy_from_user_inatomic ___copy_from_user

+0 −1
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@ lib-y += strlen.o
lib-y                 += checksum_$(BITS).o
lib-$(CONFIG_SPARC32) += blockops.o
lib-y                 += memscan_$(BITS).o memcmp.o strncmp_$(BITS).o
lib-y                 += strlen_user_$(BITS).o
lib-$(CONFIG_SPARC32) += divdi3.o udivdi3.o
lib-$(CONFIG_SPARC32) += copy_user.o locks.o
lib-$(CONFIG_SPARC64) += atomic_64.o
+0 −2
Original line number Diff line number Diff line
@@ -15,8 +15,6 @@

/* string functions */
EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(__strlen_user);
EXPORT_SYMBOL(__strnlen_user);
EXPORT_SYMBOL(strncmp);

/* mem* functions */
Loading