size_t len, loff_t *pos)
 {
        struct spu_context *ctx = file->private_data;
-       u32 mbox_data, __user *udata;
+       u32 mbox_data, __user *udata = (void __user *)buf;
        ssize_t count;
 
        if (len < 4)
                return -EINVAL;
 
-       if (!access_ok(buf, len))
-               return -EFAULT;
-
-       udata = (void __user *)buf;
-
        count = spu_acquire(ctx);
        if (count)
                return count;
                 * but still need to return the data we have
                 * read successfully so far.
                 */
-               ret = __put_user(mbox_data, udata);
+               ret = put_user(mbox_data, udata);
                if (ret) {
                        if (!count)
                                count = -EFAULT;
                        size_t len, loff_t *pos)
 {
        struct spu_context *ctx = file->private_data;
-       u32 ibox_data, __user *udata;
+       u32 ibox_data, __user *udata = (void __user *)buf;
        ssize_t count;
 
        if (len < 4)
                return -EINVAL;
 
-       if (!access_ok(buf, len))
-               return -EFAULT;
-
-       udata = (void __user *)buf;
-
        count = spu_acquire(ctx);
        if (count)
                goto out;
        }
 
        /* if we can't write at all, return -EFAULT */
-       count = __put_user(ibox_data, udata);
+       count = put_user(ibox_data, udata);
        if (count)
                goto out_unlock;
 
                 * but still need to return the data we have
                 * read successfully so far.
                 */
-               ret = __put_user(ibox_data, udata);
+               ret = put_user(ibox_data, udata);
                if (ret)
                        break;
        }
                        size_t len, loff_t *pos)
 {
        struct spu_context *ctx = file->private_data;
-       u32 wbox_data, __user *udata;
+       u32 wbox_data, __user *udata = (void __user *)buf;
        ssize_t count;
 
        if (len < 4)
                return -EINVAL;
 
-       udata = (void __user *)buf;
-       if (!access_ok(buf, len))
-               return -EFAULT;
-
-       if (__get_user(wbox_data, udata))
+       if (get_user(wbox_data, udata))
                return -EFAULT;
 
        count = spu_acquire(ctx);
        /* write as much as possible */
        for (count = 4, udata++; (count + 4) <= len; count += 4, udata++) {
                int ret;
-               ret = __get_user(wbox_data, udata);
+               ret = get_user(wbox_data, udata);
                if (ret)
                        break;
 
        u32 stat, data;
        int ret;
 
-       if (!access_ok(buf, len))
-               return -EFAULT;
-
        ret = spu_acquire_saved(ctx);
        if (ret)
                return ret;
        u32 stat, data;
        int ret;
 
-       if (!access_ok(buf, len))
-               return -EFAULT;
-
        ret = spu_acquire_saved(ctx);
        if (ret)
                return ret;
        u32 data[ARRAY_SIZE(ctx->csa.spu_mailbox_data)];
        int ret, count;
 
-       if (!access_ok(buf, len))
-               return -EFAULT;
-
        ret = spu_acquire_saved(ctx);
        if (ret)
                return ret;
        struct spu_dma_info info;
        int ret;
 
-       if (!access_ok(buf, len))
-               return -EFAULT;
-
        ret = spu_acquire_saved(ctx);
        if (ret)
                return ret;