Merge tag 'for-5.15/parisc' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
[linux-2.6-microblaze.git] / arch / arc / include / asm / uaccess.h
index ea40ec7..783bfdb 100644 (file)
@@ -655,88 +655,16 @@ static inline unsigned long __arc_clear_user(void __user *to, unsigned long n)
        return res;
 }
 
-static inline long
-__arc_strncpy_from_user(char *dst, const char __user *src, long count)
-{
-       long res = 0;
-       char val;
-
-       if (count == 0)
-               return 0;
-
-       __asm__ __volatile__(
-       "       mov     lp_count, %5            \n"
-       "       lp      3f                      \n"
-       "1:     ldb.ab  %3, [%2, 1]             \n"
-       "       breq.d  %3, 0, 3f               \n"
-       "       stb.ab  %3, [%1, 1]             \n"
-       "       add     %0, %0, 1       # Num of NON NULL bytes copied  \n"
-       "3:                                                             \n"
-       "       .section .fixup, \"ax\"         \n"
-       "       .align 4                        \n"
-       "4:     mov %0, %4              # sets @res as -EFAULT  \n"
-       "       j   3b                          \n"
-       "       .previous                       \n"
-       "       .section __ex_table, \"a\"      \n"
-       "       .align 4                        \n"
-       "       .word   1b, 4b                  \n"
-       "       .previous                       \n"
-       : "+r"(res), "+r"(dst), "+r"(src), "=r"(val)
-       : "g"(-EFAULT), "r"(count)
-       : "lp_count", "memory");
-
-       return res;
-}
-
-static inline long __arc_strnlen_user(const char __user *s, long n)
-{
-       long res, tmp1, cnt;
-       char val;
-
-       __asm__ __volatile__(
-       "       mov %2, %1                      \n"
-       "1:     ldb.ab  %3, [%0, 1]             \n"
-       "       breq.d  %3, 0, 2f               \n"
-       "       sub.f   %2, %2, 1               \n"
-       "       bnz 1b                          \n"
-       "       sub %2, %2, 1                   \n"
-       "2:     sub %0, %1, %2                  \n"
-       "3:     ;nop                            \n"
-       "       .section .fixup, \"ax\"         \n"
-       "       .align 4                        \n"
-       "4:     mov %0, 0                       \n"
-       "       j   3b                          \n"
-       "       .previous                       \n"
-       "       .section __ex_table, \"a\"      \n"
-       "       .align 4                        \n"
-       "       .word 1b, 4b                    \n"
-       "       .previous                       \n"
-       : "=r"(res), "=r"(tmp1), "=r"(cnt), "=r"(val)
-       : "0"(s), "1"(n)
-       : "memory");
-
-       return res;
-}
-
 #ifndef CONFIG_CC_OPTIMIZE_FOR_SIZE
 
 #define INLINE_COPY_TO_USER
 #define INLINE_COPY_FROM_USER
 
 #define __clear_user(d, n)             __arc_clear_user(d, n)
-#define __strncpy_from_user(d, s, n)   __arc_strncpy_from_user(d, s, n)
-#define __strnlen_user(s, n)           __arc_strnlen_user(s, n)
 #else
 extern unsigned long arc_clear_user_noinline(void __user *to,
                unsigned long n);
-extern long arc_strncpy_from_user_noinline (char *dst, const char __user *src,
-               long count);
-extern long arc_strnlen_user_noinline(const char __user *src, long n);
-
 #define __clear_user(d, n)             arc_clear_user_noinline(d, n)
-#define __strncpy_from_user(d, s, n)   arc_strncpy_from_user_noinline(d, s, n)
-#define __strnlen_user(s, n)           arc_strnlen_user_noinline(s, n)
-
 #endif
 
 #include <asm/segment.h>