diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 97f661372a1c..9cd4e1e05b97 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |||
@@ -161,7 +161,7 @@ int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data) | |||
161 | } | 161 | } |
162 | 162 | ||
163 | /* get chunks */ | 163 | /* get chunks */ |
164 | chunk_array_user = (uint64_t __user *)(unsigned long)(cs->in.chunks); | 164 | chunk_array_user = (uint64_t __user *)(uintptr_t)(cs->in.chunks); |
165 | if (copy_from_user(chunk_array, chunk_array_user, | 165 | if (copy_from_user(chunk_array, chunk_array_user, |
166 | sizeof(uint64_t)*cs->in.num_chunks)) { | 166 | sizeof(uint64_t)*cs->in.num_chunks)) { |
167 | ret = -EFAULT; | 167 | ret = -EFAULT; |
@@ -181,7 +181,7 @@ int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data) | |||
181 | struct drm_amdgpu_cs_chunk user_chunk; | 181 | struct drm_amdgpu_cs_chunk user_chunk; |
182 | uint32_t __user *cdata; | 182 | uint32_t __user *cdata; |
183 | 183 | ||
184 | chunk_ptr = (void __user *)(unsigned long)chunk_array[i]; | 184 | chunk_ptr = (void __user *)(uintptr_t)chunk_array[i]; |
185 | if (copy_from_user(&user_chunk, chunk_ptr, | 185 | if (copy_from_user(&user_chunk, chunk_ptr, |
186 | sizeof(struct drm_amdgpu_cs_chunk))) { | 186 | sizeof(struct drm_amdgpu_cs_chunk))) { |
187 | ret = -EFAULT; | 187 | ret = -EFAULT; |
@@ -192,7 +192,7 @@ int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data) | |||
192 | p->chunks[i].length_dw = user_chunk.length_dw; | 192 | p->chunks[i].length_dw = user_chunk.length_dw; |
193 | 193 | ||
194 | size = p->chunks[i].length_dw; | 194 | size = p->chunks[i].length_dw; |
195 | cdata = (void __user *)(unsigned long)user_chunk.chunk_data; | 195 | cdata = (void __user *)(uintptr_t)user_chunk.chunk_data; |
196 | 196 | ||
197 | p->chunks[i].kdata = drm_malloc_ab(size, sizeof(uint32_t)); | 197 | p->chunks[i].kdata = drm_malloc_ab(size, sizeof(uint32_t)); |
198 | if (p->chunks[i].kdata == NULL) { | 198 | if (p->chunks[i].kdata == NULL) { |
@@ -949,7 +949,7 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev, | |||
949 | } | 949 | } |
950 | 950 | ||
951 | if ((chunk_ib->va_start + chunk_ib->ib_bytes) > | 951 | if ((chunk_ib->va_start + chunk_ib->ib_bytes) > |
952 | (m->it.last + 1) * AMDGPU_GPU_PAGE_SIZE) { | 952 | (m->last + 1) * AMDGPU_GPU_PAGE_SIZE) { |
953 | DRM_ERROR("IB va_start+ib_bytes is invalid\n"); | 953 | DRM_ERROR("IB va_start+ib_bytes is invalid\n"); |
954 | return -EINVAL; | 954 | return -EINVAL; |
955 | } | 955 | } |
@@ -960,7 +960,7 @@ static int amdgpu_cs_ib_fill(struct amdgpu_device *adev, | |||
960 | return r; | 960 | return r; |
961 | } | 961 | } |
962 | 962 | ||
963 | offset = ((uint64_t)m->it.start) * AMDGPU_GPU_PAGE_SIZE; | 963 | offset = m->start * AMDGPU_GPU_PAGE_SIZE; |
964 | kptr += chunk_ib->va_start - offset; | 964 | kptr += chunk_ib->va_start - offset; |
965 | 965 | ||
966 | r = amdgpu_ib_get(adev, vm, chunk_ib->ib_bytes, ib); | 966 | r = amdgpu_ib_get(adev, vm, chunk_ib->ib_bytes, ib); |
@@ -1339,7 +1339,7 @@ int amdgpu_cs_wait_fences_ioctl(struct drm_device *dev, void *data, | |||
1339 | if (fences == NULL) | 1339 | if (fences == NULL) |
1340 | return -ENOMEM; | 1340 | return -ENOMEM; |
1341 | 1341 | ||
1342 | fences_user = (void __user *)(unsigned long)(wait->in.fences); | 1342 | fences_user = (void __user *)(uintptr_t)(wait->in.fences); |
1343 | if (copy_from_user(fences, fences_user, | 1343 | if (copy_from_user(fences, fences_user, |
1344 | sizeof(struct drm_amdgpu_fence) * fence_count)) { | 1344 | sizeof(struct drm_amdgpu_fence) * fence_count)) { |
1345 | r = -EFAULT; | 1345 | r = -EFAULT; |
@@ -1388,8 +1388,8 @@ amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser, | |||
1388 | continue; | 1388 | continue; |
1389 | 1389 | ||
1390 | list_for_each_entry(mapping, &lobj->bo_va->valids, list) { | 1390 | list_for_each_entry(mapping, &lobj->bo_va->valids, list) { |
1391 | if (mapping->it.start > addr || | 1391 | if (mapping->start > addr || |
1392 | addr > mapping->it.last) | 1392 | addr > mapping->last) |
1393 | continue; | 1393 | continue; |
1394 | 1394 | ||
1395 | *bo = lobj->bo_va->bo; | 1395 | *bo = lobj->bo_va->bo; |
@@ -1397,8 +1397,8 @@ amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser, | |||
1397 | } | 1397 | } |
1398 | 1398 | ||
1399 | list_for_each_entry(mapping, &lobj->bo_va->invalids, list) { | 1399 | list_for_each_entry(mapping, &lobj->bo_va->invalids, list) { |
1400 | if (mapping->it.start > addr || | 1400 | if (mapping->start > addr || |
1401 | addr > mapping->it.last) | 1401 | addr > mapping->last) |
1402 | continue; | 1402 | continue; |
1403 | 1403 | ||
1404 | *bo = lobj->bo_va->bo; | 1404 | *bo = lobj->bo_va->bo; |