drm/amdgpu: Remove the while loop from amdgpu_job_prepare_job
authorTvrtko Ursulin <tvrtko.ursulin@igalia.com>
Tue, 24 Sep 2024 09:51:45 +0000 (10:51 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 8 Oct 2024 13:43:43 +0000 (09:43 -0400)
While loop makes it sound like amdgpu_vmid_grab() potentially needs to be
called multiple times to produce a fence, while in reality all code paths
either return an error, assign a valid job->vmid or assign a vmid which
will be valid once the returned fence signals.

Therefore we can remove the loop to make it clear the call does not need
to be repeated.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c

index b550a31..102742f 100644 (file)
@@ -359,7 +359,7 @@ amdgpu_job_prepare_job(struct drm_sched_job *sched_job,
        if (job->gang_submit)
                fence = amdgpu_device_switch_gang(ring->adev, job->gang_submit);
 
-       while (!fence && job->vm && !job->vmid) {
+       if (!fence && job->vm && !job->vmid) {
                r = amdgpu_vmid_grab(job->vm, ring, job, &fence);
                if (r) {
                        dev_err(ring->adev->dev, "Error getting VM ID (%d)\n", r);