]> err.no Git - linux-2.6/blobdiff - include/asm-arm/uaccess.h
[ARM] 3370/2: ep93xx: add crunch support
[linux-2.6] / include / asm-arm / uaccess.h
index a2fdad0138b3e5bf2e7e2500e97a8821fe7b036e..f909dc75301a15b336395dee77a5f2d763d1951d 100644 (file)
@@ -100,7 +100,6 @@ static inline void set_fs (mm_segment_t fs)
 extern int __get_user_1(void *);
 extern int __get_user_2(void *);
 extern int __get_user_4(void *);
-extern int __get_user_8(void *);
 extern int __get_user_bad(void);
 
 #define __get_user_x(__r2,__p,__e,__s,__i...)                          \
@@ -114,7 +113,7 @@ extern int __get_user_bad(void);
 #define get_user(x,p)                                                  \
        ({                                                              \
                const register typeof(*(p)) __user *__p asm("r0") = (p);\
-               register typeof(*(p)) __r2 asm("r2");                   \
+               register unsigned int __r2 asm("r2");                   \
                register int __e asm("r0");                             \
                switch (sizeof(*(__p))) {                               \
                case 1:                                                 \
@@ -126,12 +125,9 @@ extern int __get_user_bad(void);
                case 4:                                                 \
                        __get_user_x(__r2, __p, __e, 4, "lr");          \
                        break;                                          \
-               case 8:                                                 \
-                       __get_user_x(__r2, __p, __e, 8, "lr");          \
-                       break;                                          \
                default: __e = __get_user_bad(); break;                 \
                }                                                       \
-               x = __r2;                                               \
+               x = (typeof(*(p))) __r2;                                \
                __e;                                                    \
        })
 
@@ -357,66 +353,47 @@ do {                                                                      \
        : "r" (x), "i" (-EFAULT)                                \
        : "cc")
 
-extern unsigned long __arch_copy_from_user(void *to, const void __user *from, unsigned long n);
-extern unsigned long __arch_copy_to_user(void __user *to, const void *from, unsigned long n);
-extern unsigned long __arch_clear_user(void __user *addr, unsigned long n);
-extern unsigned long __arch_strncpy_from_user(char *to, const char __user *from, unsigned long count);
-extern unsigned long __arch_strnlen_user(const char __user *s, long n);
+
+extern unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n);
+extern unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n);
+extern unsigned long __clear_user(void __user *addr, unsigned long n);
+extern unsigned long __strncpy_from_user(char *to, const char __user *from, unsigned long count);
+extern unsigned long __strnlen_user(const char __user *s, long n);
 
 static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
 {
        if (access_ok(VERIFY_READ, from, n))
-               n = __arch_copy_from_user(to, from, n);
+               n = __copy_from_user(to, from, n);
        else /* security hole - plug it */
                memzero(to, n);
        return n;
 }
 
-static inline unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n)
-{
-       return __arch_copy_from_user(to, from, n);
-}
-
 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
 {
        if (access_ok(VERIFY_WRITE, to, n))
-               n = __arch_copy_to_user(to, from, n);
+               n = __copy_to_user(to, from, n);
        return n;
 }
 
-static inline unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n)
-{
-       return __arch_copy_to_user(to, from, n);
-}
-
 #define __copy_to_user_inatomic __copy_to_user
 #define __copy_from_user_inatomic __copy_from_user
 
-static inline unsigned long clear_user (void __user *to, unsigned long n)
+static inline unsigned long clear_user(void __user *to, unsigned long n)
 {
        if (access_ok(VERIFY_WRITE, to, n))
-               n = __arch_clear_user(to, n);
+               n = __clear_user(to, n);
        return n;
 }
 
-static inline unsigned long __clear_user (void __user *to, unsigned long n)
-{
-       return __arch_clear_user(to, n);
-}
-
-static inline long strncpy_from_user (char *dst, const char __user *src, long count)
+static inline long strncpy_from_user(char *dst, const char __user *src, long count)
 {
        long res = -EFAULT;
        if (access_ok(VERIFY_READ, src, 1))
-               res = __arch_strncpy_from_user(dst, src, count);
+               res = __strncpy_from_user(dst, src, count);
        return res;
 }
 
-static inline long __strncpy_from_user (char *dst, const char __user *src, long count)
-{
-       return __arch_strncpy_from_user(dst, src, count);
-}
-
 #define strlen_user(s) strnlen_user(s, ~0UL >> 1)
 
 static inline long strnlen_user(const char __user *s, long n)
@@ -424,7 +401,7 @@ static inline long strnlen_user(const char __user *s, long n)
        unsigned long res = 0;
 
        if (__addr_ok(s))
-               res = __arch_strnlen_user(s, n);
+               res = __strnlen_user(s, n);
 
        return res;
 }