As both SDMA and CPU implementations always return 0, they can as well
just return void.
This is necessary to avoid clobbering the return code in
amdgpu_vm_update_range when amdgpu_vm_ptes_update fails.
Fixes: 81417bea8755 ("drm/amdgpu: explicitly sync VM update to PDs/PTs")
Fixes: c3546695830e ("drm/amdgpu: use the new VM backend for PTEs")
Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 ++------
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 4 ++--
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c | 8 +++-----
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 15 +++++----------
5 files changed, 13 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
index bb04101b0fb5..09037df76400 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
@@ -1027,9 +1027,7 @@ int amdgpu_vm_update_pdes(struct amdgpu_device *adev,
goto error;
}
- r = vm->update_funcs->commit(¶ms, &vm->last_update);
- if (r)
- goto error;
+ vm->update_funcs->commit(¶ms, &vm->last_update);
if (flush_tlb_needed)
atomic64_inc(&vm->tlb_seq);
@@ -1243,9 +1241,7 @@ int amdgpu_vm_update_range(struct amdgpu_device *adev,
struct amdgpu_vm *vm,
start = tmp;
}
- r = vm->update_funcs->commit(¶ms, fence);
- if (r)
- goto error_free;
+ vm->update_funcs->commit(¶ms, fence);
if (params.needs_flush) {
amdgpu_vm_tlb_flush(¶ms, fence, tlb_cb);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
index d32183cd9e0f..3b237e78c8a8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
@@ -332,8 +332,8 @@ struct amdgpu_vm_update_funcs {
int (*update)(struct amdgpu_vm_update_params *p,
struct amdgpu_bo_vm *bo, uint64_t pe, uint64_t addr,
unsigned count, uint32_t incr, uint64_t flags);
- int (*commit)(struct amdgpu_vm_update_params *p,
- struct dma_fence **fence);
+ void (*commit)(struct amdgpu_vm_update_params *p,
+ struct dma_fence **fence);
};
struct amdgpu_vm_fault_info {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c
index b31ff6f56f0d..5c17946632cb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c
@@ -116,8 +116,8 @@ static int amdgpu_vm_cpu_update(struct
amdgpu_vm_update_params *p,
*
* Make sure that the hardware sees the page table updates.
*/
-static int amdgpu_vm_cpu_commit(struct amdgpu_vm_update_params *p,
- struct dma_fence **fence)
+static void amdgpu_vm_cpu_commit(struct amdgpu_vm_update_params *p,
+ struct dma_fence **fence)
{
struct amdgpu_device *adev = p->adev;
@@ -127,12 +127,10 @@ static int amdgpu_vm_cpu_commit(struct
amdgpu_vm_update_params *p,
mb();
/* A reset flushed the HDP anyway, so that here can be skipped when a
reset is ongoing */
if (!down_read_trylock(&adev->reset_domain->sem))
- return 0;
+ return;
amdgpu_device_flush_hdp(adev, NULL);
up_read(&adev->reset_domain->sem);
-
- return 0;
}
const struct amdgpu_vm_update_funcs amdgpu_vm_cpu_funcs = {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
index e43a60d09808..e9622adf1246 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c
@@ -422,7 +422,7 @@ int amdgpu_vm_pt_clear(struct amdgpu_device *adev, struct
amdgpu_vm *vm,
if (r)
goto exit;
- r = vm->update_funcs->commit(¶ms, NULL);
+ vm->update_funcs->commit(¶ms, NULL);
exit:
drm_dev_exit(idx);
return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
index 975e26a48cd3..52dc67b50fae 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
@@ -101,25 +101,23 @@ static int amdgpu_vm_sdma_prepare(struct
amdgpu_vm_update_params *p,
* @p: see amdgpu_vm_update_params definition
* @fence: resulting fence
*
- * Returns:
- * Negativ errno, 0 for success.
*/
-static int amdgpu_vm_sdma_commit(struct amdgpu_vm_update_params *p,
- struct dma_fence **fence)
+static void amdgpu_vm_sdma_commit(struct amdgpu_vm_update_params *p,
+ struct dma_fence **fence)
{
struct amdgpu_ib *ib;
struct amdgpu_ring *ring;
struct dma_fence *f;
if (!p->job)
- return 0;
+ return;
ib = p->job->ibs;
if (ib->length_dw == 0) {
amdgpu_job_free(p->job);
p->job = NULL;
- return 0;
+ return;
}
ring = container_of(p->vm->delayed.rq->sched, struct amdgpu_ring,
@@ -153,7 +151,6 @@ static int amdgpu_vm_sdma_commit(struct
amdgpu_vm_update_params *p,
swap(*fence, f);
}
dma_fence_put(f);
- return 0;
}
/**
@@ -257,9 +254,7 @@ static int amdgpu_vm_sdma_update(struct
amdgpu_vm_update_params *p,
ndw -= p->job->ibs->length_dw;
if (ndw < 32) {
- r = amdgpu_vm_sdma_commit(p, NULL);
- if (r)
- return r;
+ amdgpu_vm_sdma_commit(p, NULL);
r = amdgpu_vm_sdma_alloc_job(p, count,
AMDGPU_KERNEL_JOB_ID_VM_UPDATE);
--
2.47.3