* ++geert: split in even more functions (one per format)
  */
 
-static ssize_t ata_ct_law(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_law(const u_char __user *userPtr, size_t userCount,
                          u_char frame[], ssize_t *frameUsed,
                          ssize_t frameLeft);
-static ssize_t ata_ct_s8(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_s8(const u_char __user *userPtr, size_t userCount,
                         u_char frame[], ssize_t *frameUsed,
                         ssize_t frameLeft);
-static ssize_t ata_ct_u8(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_u8(const u_char __user *userPtr, size_t userCount,
                         u_char frame[], ssize_t *frameUsed,
                         ssize_t frameLeft);
-static ssize_t ata_ct_s16be(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_s16be(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft);
-static ssize_t ata_ct_u16be(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_u16be(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft);
-static ssize_t ata_ct_s16le(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_s16le(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft);
-static ssize_t ata_ct_u16le(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_u16le(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft);
-static ssize_t ata_ctx_law(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_law(const u_char __user *userPtr, size_t userCount,
                           u_char frame[], ssize_t *frameUsed,
                           ssize_t frameLeft);
-static ssize_t ata_ctx_s8(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_s8(const u_char __user *userPtr, size_t userCount,
                          u_char frame[], ssize_t *frameUsed,
                          ssize_t frameLeft);
-static ssize_t ata_ctx_u8(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_u8(const u_char __user *userPtr, size_t userCount,
                          u_char frame[], ssize_t *frameUsed,
                          ssize_t frameLeft);
-static ssize_t ata_ctx_s16be(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_s16be(const u_char __user *userPtr, size_t userCount,
                             u_char frame[], ssize_t *frameUsed,
                             ssize_t frameLeft);
-static ssize_t ata_ctx_u16be(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_u16be(const u_char __user *userPtr, size_t userCount,
                             u_char frame[], ssize_t *frameUsed,
                             ssize_t frameLeft);
-static ssize_t ata_ctx_s16le(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_s16le(const u_char __user *userPtr, size_t userCount,
                             u_char frame[], ssize_t *frameUsed,
                             ssize_t frameLeft);
-static ssize_t ata_ctx_u16le(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_u16le(const u_char __user *userPtr, size_t userCount,
                             u_char frame[], ssize_t *frameUsed,
                             ssize_t frameLeft);
 
 /*** Translations ************************************************************/
 
 
-static ssize_t ata_ct_law(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_law(const u_char __user *userPtr, size_t userCount,
                          u_char frame[], ssize_t *frameUsed,
                          ssize_t frameLeft)
 {
 }
 
 
-static ssize_t ata_ct_s8(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_s8(const u_char __user *userPtr, size_t userCount,
                         u_char frame[], ssize_t *frameUsed,
                         ssize_t frameLeft)
 {
 }
 
 
-static ssize_t ata_ct_u8(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_u8(const u_char __user *userPtr, size_t userCount,
                         u_char frame[], ssize_t *frameUsed,
                         ssize_t frameLeft)
 {
                used = count*2;
                while (count > 0) {
                        u_short data;
-                       if (get_user(data, (u_short *)userPtr))
+                       if (get_user(data, (u_short __user *)userPtr))
                                return -EFAULT;
                        userPtr += 2;
                        *p++ = data ^ 0x8080;
 }
 
 
-static ssize_t ata_ct_s16be(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_s16be(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft)
 {
                used = count*2;
                while (count > 0) {
                        u_short data;
-                       if (get_user(data, (u_short *)userPtr))
+                       if (get_user(data, (u_short __user *)userPtr))
                                return -EFAULT;
                        userPtr += 2;
                        *p++ = data;
 }
 
 
-static ssize_t ata_ct_u16be(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_u16be(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft)
 {
                used = count*2;
                while (count > 0) {
                        u_short data;
-                       if (get_user(data, (u_short *)userPtr))
+                       if (get_user(data, (u_short __user *)userPtr))
                                return -EFAULT;
                        userPtr += 2;
                        data ^= 0x8000;
                count = min_t(unsigned long, userCount, frameLeft)>>2;
                used = count*4;
                while (count > 0) {
-                       u_long data;
-                       if (get_user(data, (u_int *)userPtr))
+                       u_int data;
+                       if (get_user(data, (u_int __user *)userPtr))
                                return -EFAULT;
                        userPtr += 4;
                        *p++ = data ^ 0x80008000;
 }
 
 
-static ssize_t ata_ct_s16le(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_s16le(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft)
 {
                used = count*2;
                while (count > 0) {
                        u_short data;
-                       if (get_user(data, (u_short *)userPtr))
+                       if (get_user(data, (u_short __user *)userPtr))
                                return -EFAULT;
                        userPtr += 2;
                        data = le2be16(data);
                used = count*4;
                while (count > 0) {
                        u_long data;
-                       if (get_user(data, (u_int *)userPtr))
+                       if (get_user(data, (u_int __user *)userPtr))
                                return -EFAULT;
                        userPtr += 4;
                        data = le2be16dbl(data);
 }
 
 
-static ssize_t ata_ct_u16le(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ct_u16le(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft)
 {
                used = count*2;
                while (count > 0) {
                        u_short data;
-                       if (get_user(data, (u_short *)userPtr))
+                       if (get_user(data, (u_short __user *)userPtr))
                                return -EFAULT;
                        userPtr += 2;
                        data = le2be16(data) ^ 0x8000;
                used = count;
                while (count > 0) {
                        u_long data;
-                       if (get_user(data, (u_int *)userPtr))
+                       if (get_user(data, (u_int __user *)userPtr))
                                return -EFAULT;
                        userPtr += 4;
                        data = le2be16dbl(data) ^ 0x80008000;
 }
 
 
-static ssize_t ata_ctx_law(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_law(const u_char __user *userPtr, size_t userCount,
                           u_char frame[], ssize_t *frameUsed,
                           ssize_t frameLeft)
 {
 }
 
 
-static ssize_t ata_ctx_s8(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_s8(const u_char __user *userPtr, size_t userCount,
                          u_char frame[], ssize_t *frameUsed,
                          ssize_t frameLeft)
 {
                        if (bal < 0) {
                                if (userCount < 2)
                                        break;
-                               if (get_user(data, (u_short *)userPtr))
+                               if (get_user(data, (u_short __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 2;
                                userCount -= 2;
 }
 
 
-static ssize_t ata_ctx_u8(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_u8(const u_char __user *userPtr, size_t userCount,
                          u_char frame[], ssize_t *frameUsed,
                          ssize_t frameLeft)
 {
                        if (bal < 0) {
                                if (userCount < 2)
                                        break;
-                               if (get_user(data, (u_short *)userPtr))
+                               if (get_user(data, (u_short __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 2;
                                data ^= 0x8080;
 }
 
 
-static ssize_t ata_ctx_s16be(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_s16be(const u_char __user *userPtr, size_t userCount,
                             u_char frame[], ssize_t *frameUsed,
                             ssize_t frameLeft)
 {
                        if (bal < 0) {
                                if (userCount < 2)
                                        break;
-                               if (get_user(data, (u_short *)userPtr))
+                               if (get_user(data, (u_short __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 2;
                                userCount -= 2;
                        if (bal < 0) {
                                if (userCount < 4)
                                        break;
-                               if (get_user(data, (u_int *)userPtr))
+                               if (get_user(data, (u_int __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 4;
                                userCount -= 4;
 }
 
 
-static ssize_t ata_ctx_u16be(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_u16be(const u_char __user *userPtr, size_t userCount,
                             u_char frame[], ssize_t *frameUsed,
                             ssize_t frameLeft)
 {
                        if (bal < 0) {
                                if (userCount < 2)
                                        break;
-                               if (get_user(data, (u_short *)userPtr))
+                               if (get_user(data, (u_short __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 2;
                                data ^= 0x8000;
                        if (bal < 0) {
                                if (userCount < 4)
                                        break;
-                               if (get_user(data, (u_int *)userPtr))
+                               if (get_user(data, (u_int __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 4;
                                data ^= 0x80008000;
 }
 
 
-static ssize_t ata_ctx_s16le(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_s16le(const u_char __user *userPtr, size_t userCount,
                             u_char frame[], ssize_t *frameUsed,
                             ssize_t frameLeft)
 {
                        if (bal < 0) {
                                if (userCount < 2)
                                        break;
-                               if (get_user(data, (u_short *)userPtr))
+                               if (get_user(data, (u_short __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 2;
                                data = le2be16(data);
                        if (bal < 0) {
                                if (userCount < 4)
                                        break;
-                               if (get_user(data, (u_int *)userPtr))
+                               if (get_user(data, (u_int __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 4;
                                data = le2be16dbl(data);
 }
 
 
-static ssize_t ata_ctx_u16le(const u_char *userPtr, size_t userCount,
+static ssize_t ata_ctx_u16le(const u_char __user *userPtr, size_t userCount,
                             u_char frame[], ssize_t *frameUsed,
                             ssize_t frameLeft)
 {
                        if (bal < 0) {
                                if (userCount < 2)
                                        break;
-                               if (get_user(data, (u_short *)userPtr))
+                               if (get_user(data, (u_short __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 2;
                                data = le2be16(data) ^ 0x8000;
                        if (bal < 0) {
                                if (userCount < 4)
                                        break;
-                               if (get_user(data, (u_int *)userPtr))
+                               if (get_user(data, (u_int __user *)userPtr))
                                        return -EFAULT;
                                userPtr += 4;
                                data = le2be16dbl(data) ^ 0x80008000;
 
 
 
 /* userCount, frameUsed, frameLeft == byte counts */
-static ssize_t q40_ct_law(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ct_law(const u_char __user *userPtr, size_t userCount,
                           u_char frame[], ssize_t *frameUsed,
                           ssize_t frameLeft)
 {
 }
 
 
-static ssize_t q40_ct_s8(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ct_s8(const u_char __user *userPtr, size_t userCount,
                          u_char frame[], ssize_t *frameUsed,
                          ssize_t frameLeft)
 {
        return used;
 }
 
-static ssize_t q40_ct_u8(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ct_u8(const u_char __user *userPtr, size_t userCount,
                          u_char frame[], ssize_t *frameUsed,
                          ssize_t frameLeft)
 {
 
 
 /* a bit too complicated to optimise right now ..*/
-static ssize_t q40_ctx_law(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ctx_law(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft)
 {
 }
 
 
-static ssize_t q40_ctx_s8(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ctx_s8(const u_char __user *userPtr, size_t userCount,
                           u_char frame[], ssize_t *frameUsed,
                           ssize_t frameLeft)
 {
 }
 
 
-static ssize_t q40_ctx_u8(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ctx_u8(const u_char __user *userPtr, size_t userCount,
                           u_char frame[], ssize_t *frameUsed,
                           ssize_t frameLeft)
 {
 }
 
 /* compressing versions */
-static ssize_t q40_ctc_law(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ctc_law(const u_char __user *userPtr, size_t userCount,
                            u_char frame[], ssize_t *frameUsed,
                            ssize_t frameLeft)
 {
 }
 
 
-static ssize_t q40_ctc_s8(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ctc_s8(const u_char __user *userPtr, size_t userCount,
                           u_char frame[], ssize_t *frameUsed,
                           ssize_t frameLeft)
 {
 }
 
 
-static ssize_t q40_ctc_u8(const u_char *userPtr, size_t userCount,
+static ssize_t q40_ctc_u8(const u_char __user *userPtr, size_t userCount,
                           u_char frame[], ssize_t *frameUsed,
                           ssize_t frameLeft)
 {