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(&params, &vm->last_update);
-       if (r)
-               goto error;
+       vm->update_funcs->commit(&params, &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(&params, fence);
-       if (r)
-               goto error_free;
+       vm->update_funcs->commit(&params, fence);
 
        if (params.needs_flush) {
                amdgpu_vm_tlb_flush(&params, 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(&params, NULL);
+       vm->update_funcs->commit(&params, 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

Reply via email to