aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index e0fa9d9ff5c2..d6ff5dad98f6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1010,13 +1010,13 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
1010 return -EINVAL; 1010 return -EINVAL;
1011 1011
1012 /* make sure object fit at this offset */ 1012 /* make sure object fit at this offset */
1013 eaddr = saddr + size; 1013 eaddr = saddr + size - 1;
1014 if ((saddr >= eaddr) || (offset + size > amdgpu_bo_size(bo_va->bo))) 1014 if ((saddr >= eaddr) || (offset + size > amdgpu_bo_size(bo_va->bo)))
1015 return -EINVAL; 1015 return -EINVAL;
1016 1016
1017 last_pfn = eaddr / AMDGPU_GPU_PAGE_SIZE; 1017 last_pfn = eaddr / AMDGPU_GPU_PAGE_SIZE;
1018 if (last_pfn > adev->vm_manager.max_pfn) { 1018 if (last_pfn >= adev->vm_manager.max_pfn) {
1019 dev_err(adev->dev, "va above limit (0x%08X > 0x%08X)\n", 1019 dev_err(adev->dev, "va above limit (0x%08X >= 0x%08X)\n",
1020 last_pfn, adev->vm_manager.max_pfn); 1020 last_pfn, adev->vm_manager.max_pfn);
1021 return -EINVAL; 1021 return -EINVAL;
1022 } 1022 }
@@ -1025,7 +1025,7 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
1025 eaddr /= AMDGPU_GPU_PAGE_SIZE; 1025 eaddr /= AMDGPU_GPU_PAGE_SIZE;
1026 1026
1027 spin_lock(&vm->it_lock); 1027 spin_lock(&vm->it_lock);
1028 it = interval_tree_iter_first(&vm->va, saddr, eaddr - 1); 1028 it = interval_tree_iter_first(&vm->va, saddr, eaddr);
1029 spin_unlock(&vm->it_lock); 1029 spin_unlock(&vm->it_lock);
1030 if (it) { 1030 if (it) {
1031 struct amdgpu_bo_va_mapping *tmp; 1031 struct amdgpu_bo_va_mapping *tmp;
@@ -1046,7 +1046,7 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
1046 1046
1047 INIT_LIST_HEAD(&mapping->list); 1047 INIT_LIST_HEAD(&mapping->list);
1048 mapping->it.start = saddr; 1048 mapping->it.start = saddr;
1049 mapping->it.last = eaddr - 1; 1049 mapping->it.last = eaddr;
1050 mapping->offset = offset; 1050 mapping->offset = offset;
1051 mapping->flags = flags; 1051 mapping->flags = flags;
1052 1052