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: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Родитель
faffaf620f
Коммит
85761f605a
|
@ -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,
|
||||||
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)
|
||||||
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 @@ error:
|
||||||
* 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,
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_unlock(&vm->mutex);
|
mutex_unlock(&vm->mutex);
|
||||||
return radeon_bo_reserve(bo_va->bo, false);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Загрузка…
Ссылка в новой задаче