Merge to Fedora kernel-2.6.18-1.2255_FC5-vs2.0.2.2-rc9 patched with stable patch...
[linux-2.6.git] / include / asm-alpha / uaccess.h
index c9bb9f1..22de3b4 100644 (file)
        __access_ok(((unsigned long)(addr)),(size),get_fs());   \
 })
 
-extern inline int verify_area(int type, const void __user * addr, unsigned long size)
-{
-       return access_ok(type,addr,size) ? 0 : -EFAULT;
-}
-
 /*
  * These are the main single-value transfer routines.  They automatically
  * use the right size if we just have the right pointer type.
@@ -91,7 +86,8 @@ extern void __get_user_unknown(void);
 
 #define __get_user_nocheck(x,ptr,size)                         \
 ({                                                             \
-       long __gu_err = 0, __gu_val;                            \
+       long __gu_err = 0;                                      \
+       unsigned long __gu_val;                                 \
        __chk_user_ptr(ptr);                                    \
        switch (size) {                                         \
          case 1: __get_user_8(ptr); break;                     \
@@ -106,9 +102,9 @@ extern void __get_user_unknown(void);
 
 #define __get_user_check(x,ptr,size,segment)                           \
 ({                                                                     \
-       long __gu_err = -EFAULT, __gu_val = 0;                          \
+       long __gu_err = -EFAULT;                                        \
+       unsigned long __gu_val = 0;                                     \
        const __typeof__(*(ptr)) __user *__gu_addr = (ptr);             \
-       __chk_user_ptr(ptr);                                            \
        if (__access_ok((unsigned long)__gu_addr,size,segment)) {       \
                __gu_err = 0;                                           \
                switch (size) {                                         \
@@ -124,7 +120,7 @@ extern void __get_user_unknown(void);
 })
 
 struct __large_struct { unsigned long buf[100]; };
-#define __m(x) (*(struct __large_struct *)(x))
+#define __m(x) (*(struct __large_struct __user *)(x))
 
 #define __get_user_64(addr)                            \
        __asm__("1: ldq %0,%2\n"                        \
@@ -223,7 +219,6 @@ extern void __put_user_unknown(void);
 ({                                                                     \
        long __pu_err = -EFAULT;                                        \
        __typeof__(*(ptr)) __user *__pu_addr = (ptr);                   \
-       __chk_user_ptr(ptr);                                            \
        if (__access_ok((unsigned long)__pu_addr,size,segment)) {       \
                __pu_err = 0;                                           \
                switch (size) {                                         \
@@ -395,6 +390,10 @@ __copy_tofrom_user(void *to, const void *from, long len, const void __user *vali
        __copy_tofrom_user_nocheck((to),(__force void *)(from),(n));    \
 })
 
+#define __copy_to_user_inatomic __copy_to_user
+#define __copy_from_user_inatomic __copy_from_user
+
+
 extern inline long
 copy_to_user(void __user *to, const void *from, long n)
 {