diff options
author | Felix Kuehling <Felix.Kuehling@amd.com> | 2016-03-03 19:13:20 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-03-09 13:04:00 -0500 |
commit | fb29b57c34488b343db2e3f00e713901385f8c0d (patch) | |
tree | 9e8455dc87efe285546f84a1ed8371cf084490fa /drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |
parent | 459ee1c3fd097ab56ababd8ff4bb7ef6a792de33 (diff) |
drm/amdgpu: Fix two bugs in amdgpu_vm_bo_split_mapping
Off-by-one: last is inclusive, so the maximum is start + max_size - 1
Wrong unit: addr is in bytes, max_size is in pages
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index cc967b44f104..330e307c36ed 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||
@@ -867,7 +867,7 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev, | |||
867 | while (start != mapping->it.last + 1) { | 867 | while (start != mapping->it.last + 1) { |
868 | uint64_t last; | 868 | uint64_t last; |
869 | 869 | ||
870 | last = min((uint64_t)mapping->it.last, start + max_size); | 870 | last = min((uint64_t)mapping->it.last, start + max_size - 1); |
871 | r = amdgpu_vm_bo_update_mapping(adev, gtt, gtt_flags, vm, | 871 | r = amdgpu_vm_bo_update_mapping(adev, gtt, gtt_flags, vm, |
872 | start, last, flags, addr, | 872 | start, last, flags, addr, |
873 | fence); | 873 | fence); |
@@ -875,7 +875,7 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev, | |||
875 | return r; | 875 | return r; |
876 | 876 | ||
877 | start = last + 1; | 877 | start = last + 1; |
878 | addr += max_size; | 878 | addr += max_size * AMDGPU_GPU_PAGE_SIZE; |
879 | } | 879 | } |
880 | 880 | ||
881 | return 0; | 881 | return 0; |