struct amdgpu_fpriv *fpriv = filp->driver_priv;
        union drm_amdgpu_bo_list *args = data;
        uint32_t handle = args->in.list_handle;
-       const void __user *uptr = (const void*)(uintptr_t)args->in.bo_info_ptr;
+       const void __user *uptr = u64_to_user_ptr(args->in.bo_info_ptr);
 
        struct drm_amdgpu_bo_list_entry *info;
        struct amdgpu_bo_list *list;
 
        }
 
        /* get chunks */
-       chunk_array_user = (uint64_t __user *)(uintptr_t)(cs->in.chunks);
+       chunk_array_user = u64_to_user_ptr(cs->in.chunks);
        if (copy_from_user(chunk_array, chunk_array_user,
                           sizeof(uint64_t)*cs->in.num_chunks)) {
                ret = -EFAULT;
                struct drm_amdgpu_cs_chunk user_chunk;
                uint32_t __user *cdata;
 
-               chunk_ptr = (void __user *)(uintptr_t)chunk_array[i];
+               chunk_ptr = u64_to_user_ptr(chunk_array[i]);
                if (copy_from_user(&user_chunk, chunk_ptr,
                                       sizeof(struct drm_amdgpu_cs_chunk))) {
                        ret = -EFAULT;
                p->chunks[i].length_dw = user_chunk.length_dw;
 
                size = p->chunks[i].length_dw;
-               cdata = (void __user *)(uintptr_t)user_chunk.chunk_data;
+               cdata = u64_to_user_ptr(user_chunk.chunk_data);
 
                p->chunks[i].kdata = kvmalloc_array(size, sizeof(uint32_t), GFP_KERNEL);
                if (p->chunks[i].kdata == NULL) {
        if (fences == NULL)
                return -ENOMEM;
 
-       fences_user = (void __user *)(uintptr_t)(wait->in.fences);
+       fences_user = u64_to_user_ptr(wait->in.fences);
        if (copy_from_user(fences, fences_user,
                sizeof(struct drm_amdgpu_fence) * fence_count)) {
                r = -EFAULT;
 
        switch (args->op) {
        case AMDGPU_GEM_OP_GET_GEM_CREATE_INFO: {
                struct drm_amdgpu_gem_create_in info;
-               void __user *out = (void __user *)(uintptr_t)args->value;
+               void __user *out = u64_to_user_ptr(args->value);
 
                info.bo_size = robj->gem_base.size;
                info.alignment = robj->tbo.mem.page_alignment << PAGE_SHIFT;