On Fri, Nov 18, 2022 at 10:30 AM Christian König <ckoenig.leichtzumerken@xxxxxxxxx> wrote: > > Otherwise it can happen that not all gang members can get a VMID > assigned and we deadlock. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > Tested-by: Timur Kristóf <timur.kristof@xxxxxxxxx> > Acked-by: Timur Kristóf <timur.kristof@xxxxxxxxx> > Fixes: 68ce8b242242 ("drm/amdgpu: add gang submit backend v2") Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c > index cd968e781077..abb99cff8b4b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c > @@ -254,6 +254,9 @@ static struct dma_fence *amdgpu_job_dependency(struct drm_sched_job *sched_job, > DRM_ERROR("Error adding fence (%d)\n", r); > } > > + if (!fence && job->gang_submit) > + fence = amdgpu_device_switch_gang(ring->adev, job->gang_submit); > + > while (fence == NULL && vm && !job->vmid) { > r = amdgpu_vmid_grab(vm, ring, &job->sync, > &job->base.s_fence->finished, > @@ -264,9 +267,6 @@ static struct dma_fence *amdgpu_job_dependency(struct drm_sched_job *sched_job, > fence = amdgpu_sync_get_fence(&job->sync); > } > > - if (!fence && job->gang_submit) > - fence = amdgpu_device_switch_gang(ring->adev, job->gang_submit); > - > return fence; > } > > -- > 2.25.1 >