Merge tag 'for-5.15/io_uring-2021-09-04' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / arch / csky / lib / usercopy.c
index c5d394a..3c01c54 100644 (file)
@@ -142,108 +142,6 @@ unsigned long raw_copy_to_user(void *to, const void *from,
 }
 EXPORT_SYMBOL(raw_copy_to_user);
 
-/*
- * __strncpy_from_user: - Copy a NUL terminated string from userspace,
- * with less checking.
- * @dst:   Destination address, in kernel space.  This buffer must be at
- *         least @count bytes long.
- * @src:   Source address, in user space.
- * @count: Maximum number of bytes to copy, including the trailing NUL.
- *
- * Copies a NUL-terminated string from userspace to kernel space.
- * Caller must check the specified block with access_ok() before calling
- * this function.
- *
- * On success, returns the length of the string (not including the trailing
- * NUL).
- *
- * If access to userspace fails, returns -EFAULT (some data may have been
- * copied).
- *
- * If @count is smaller than the length of the string, copies @count bytes
- * and returns @count.
- */
-long __strncpy_from_user(char *dst, const char *src, long count)
-{
-       long res, faultres;
-       int tmp;
-
-       __asm__ __volatile__(
-       "       cmpnei  %3, 0           \n"
-       "       bf      4f              \n"
-       "1:     cmpnei  %1, 0           \n"
-       "       bf      5f              \n"
-       "2:     ldb     %4, (%3, 0)     \n"
-       "       stb     %4, (%2, 0)     \n"
-       "       cmpnei  %4, 0           \n"
-       "       bf      3f              \n"
-       "       addi    %3,  1          \n"
-       "       addi    %2,  1          \n"
-       "       subi    %1,  1          \n"
-       "       br      1b              \n"
-       "3:     subu    %0, %1          \n"
-       "       br      5f              \n"
-       "4:     mov     %0, %5          \n"
-       "       br      5f              \n"
-       ".section __ex_table, \"a\"     \n"
-       ".align   2                     \n"
-       ".long    2b, 4b                \n"
-       ".previous                      \n"
-       "5:                             \n"
-       : "=r"(res), "=r"(count), "=r"(dst),
-         "=r"(src), "=r"(tmp), "=r"(faultres)
-       : "5"(-EFAULT), "0"(count), "1"(count),
-         "2"(dst), "3"(src)
-       : "memory");
-
-       return res;
-}
-EXPORT_SYMBOL(__strncpy_from_user);
-
-/*
- * strnlen_user: - Get the size of a string in user space.
- * @str: The string to measure.
- * @n:   The maximum valid length
- *
- * Get the size of a NUL-terminated string in user space.
- *
- * Returns the size of the string INCLUDING the terminating NUL.
- * On exception, returns 0.
- * If the string is too long, returns a value greater than @n.
- */
-long __strnlen_user(const char *s, long n)
-{
-       unsigned long res, tmp;
-
-       __asm__ __volatile__(
-       "       cmpnei  %1, 0           \n"
-       "       bf      3f              \n"
-       "1:     cmpnei  %0, 0           \n"
-       "       bf      3f              \n"
-       "2:     ldb     %3, (%1, 0)     \n"
-       "       cmpnei  %3, 0           \n"
-       "       bf      3f              \n"
-       "       subi    %0,  1          \n"
-       "       addi    %1,  1          \n"
-       "       br      1b              \n"
-       "3:     subu    %2, %0          \n"
-       "       addi    %2,  1          \n"
-       "       br      5f              \n"
-       "4:     movi    %0, 0           \n"
-       "       br      5f              \n"
-       ".section __ex_table, \"a\"     \n"
-       ".align   2                     \n"
-       ".long    2b, 4b                \n"
-       ".previous                      \n"
-       "5:                             \n"
-       : "=r"(n), "=r"(s), "=r"(res), "=r"(tmp)
-       : "0"(n), "1"(s), "2"(n)
-       : "memory");
-
-       return res;
-}
-EXPORT_SYMBOL(__strnlen_user);
-
 /*
  * __clear_user: - Zero a block of memory in user space, with less checking.
  * @to:   Destination address, in user space.