提交 85761f60 编写于 作者: C Christian König 提交者: Alex Deucher

drm/radeon: stop re-reserving the BO in radeon_vm_bo_set_addr

That's useless when all callers drop the reservation
immediately after calling the function.
Signed-off-by: NChristian König <christian.koenig@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 faffaf62
...@@ -601,6 +601,7 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data, ...@@ -601,6 +601,7 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data,
if (bo_va->it.start) { if (bo_va->it.start) {
args->operation = RADEON_VA_RESULT_VA_EXIST; args->operation = RADEON_VA_RESULT_VA_EXIST;
args->offset = bo_va->it.start * RADEON_GPU_PAGE_SIZE; args->offset = bo_va->it.start * RADEON_GPU_PAGE_SIZE;
radeon_bo_unreserve(rbo);
goto out; goto out;
} }
r = radeon_vm_bo_set_addr(rdev, bo_va, args->offset, args->flags); r = radeon_vm_bo_set_addr(rdev, bo_va, args->offset, args->flags);
...@@ -616,7 +617,6 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data, ...@@ -616,7 +617,6 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data,
args->operation = RADEON_VA_RESULT_ERROR; args->operation = RADEON_VA_RESULT_ERROR;
} }
out: out:
radeon_bo_unreserve(rbo);
drm_gem_object_unreference_unlocked(gobj); drm_gem_object_unreference_unlocked(gobj);
return r; return r;
} }
......
...@@ -628,8 +628,6 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv) ...@@ -628,8 +628,6 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
RADEON_VA_IB_OFFSET, RADEON_VA_IB_OFFSET,
RADEON_VM_PAGE_READABLE | RADEON_VM_PAGE_READABLE |
RADEON_VM_PAGE_SNOOPED); RADEON_VM_PAGE_SNOOPED);
radeon_bo_unreserve(rdev->ring_tmp_bo.bo);
if (r) { if (r) {
radeon_vm_fini(rdev, vm); radeon_vm_fini(rdev, vm);
kfree(fpriv); kfree(fpriv);
......
...@@ -450,7 +450,7 @@ static int radeon_vm_clear_bo(struct radeon_device *rdev, ...@@ -450,7 +450,7 @@ static int radeon_vm_clear_bo(struct radeon_device *rdev,
* Validate and set the offset requested within the vm address space. * Validate and set the offset requested within the vm address space.
* Returns 0 for success, error for failure. * Returns 0 for success, error for failure.
* *
* Object has to be reserved! * Object has to be reserved and gets unreserved by this function!
*/ */
int radeon_vm_bo_set_addr(struct radeon_device *rdev, int radeon_vm_bo_set_addr(struct radeon_device *rdev,
struct radeon_bo_va *bo_va, struct radeon_bo_va *bo_va,
...@@ -576,7 +576,7 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev, ...@@ -576,7 +576,7 @@ int radeon_vm_bo_set_addr(struct radeon_device *rdev,
} }
mutex_unlock(&vm->mutex); mutex_unlock(&vm->mutex);
return radeon_bo_reserve(bo_va->bo, false); return 0;
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册