On Mon, Jan 16, 2023 at 3:15 PM Alex Deucher <alexdeucher@xxxxxxxxx> wrote: > > On Mon, Jan 16, 2023 at 3:12 PM Christian König > <ckoenig.leichtzumerken@xxxxxxxxx> wrote: > > > > It can be that neither fence were initialized when we run out of UVD > > streams for example. > > > > v2: fix typo breaking compile > > > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> > > Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> Also add: Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2324 Alex > > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 10 ++++++++-- > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c > > index f4a3122352de..6b73c074aa25 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c > > @@ -154,8 +154,14 @@ void amdgpu_job_free_resources(struct amdgpu_job *job) > > struct dma_fence *f; > > unsigned i; > > > > - /* use sched fence if available */ > > - f = job->base.s_fence ? &job->base.s_fence->finished : &job->hw_fence; > > + /* Check if any fences where initialized */ > > + if (job->base.s_fence && job->base.s_fence->finished.ops) > > + f = &job->base.s_fence->finished; > > + else if (job->hw_fence.ops) > > + f = &job->hw_fence; > > + else > > + f = NULL; > > + > > for (i = 0; i < job->num_ibs; ++i) > > amdgpu_ib_free(ring->adev, &job->ibs[i], f); > > } > > -- > > 2.34.1 > >