]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
s390/string: use generic strrchr
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 21 Oct 2021 11:40:32 +0000 (13:40 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Tue, 26 Oct 2021 13:21:30 +0000 (15:21 +0200)
Use generic strrchr instead of an optimized architecture specific
variant. Performance of strrchr is not relevant for real life
workloads, since the only user which may call this more frequently
would be kbasename().

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/lkml/CAHk-=whoe211F8ND-9hZvfnib0UA4gga8DZJ+YaBZNbE4fubdg@mail.gmail.com/
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/string.h
arch/s390/lib/string.c

index 4fd66c5e8934bfc86f75492f025cc2b1f3abec19..4f418850bfd6fba1726612340dcfb4082946fe39 100644 (file)
@@ -36,7 +36,6 @@ void *memmove(void *dest, const void *src, size_t n);
 #define __HAVE_ARCH_STRNCAT    /* arch function */
 #define __HAVE_ARCH_STRNCPY    /* arch function */
 #define __HAVE_ARCH_STRNLEN    /* inline & arch function */
-#define __HAVE_ARCH_STRRCHR    /* arch function */
 #define __HAVE_ARCH_STRSTR     /* arch function */
 
 /* Prototypes for non-inlined arch strings functions. */
@@ -46,7 +45,6 @@ size_t strlcat(char *dest, const char *src, size_t n);
 size_t strlcpy(char *dest, const char *src, size_t size);
 char *strncat(char *dest, const char *src, size_t n);
 char *strncpy(char *dest, const char *src, size_t n);
-char *strrchr(const char *s, int c);
 char *strstr(const char *s1, const char *s2);
 #endif /* !CONFIG_KASAN */
 
index a95ca6df4e5e6902fef19f87da7e6a6754b80b62..4c2d1a8949cca2aa7727eaf7f03e45b6d6adbfec 100644 (file)
@@ -251,25 +251,6 @@ int strcmp(const char *s1, const char *s2)
 EXPORT_SYMBOL(strcmp);
 #endif
 
-/**
- * strrchr - Find the last occurrence of a character in a string
- * @s: The string to be searched
- * @c: The character to search for
- */
-#ifdef __HAVE_ARCH_STRRCHR
-char *strrchr(const char *s, int c)
-{
-       ssize_t len = __strend(s) - s;
-
-       do {
-               if (s[len] == (char)c)
-                       return (char *)s + len;
-       } while (--len >= 0);
-       return NULL;
-}
-EXPORT_SYMBOL(strrchr);
-#endif
-
 static inline int clcle(const char *s1, unsigned long l1,
                        const char *s2, unsigned long l2)
 {