Hi all, On Wed, 16 Nov 2022 10:47:52 +1100 Stephen Rothwell wrote: > > Today's linux-next merge of the drm-misc tree got a conflict in: > > drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c > > between commit: > > eca13f3c67b6 ("drm/amdgpu: use the last IB as gang leader v2") > > from the drm-misc-fixes tree and commit: > > 1728baa7e4e6 ("drm/amdgpu: use scheduler dependencies for CS") > > from the drm-misc tree. > > I fixed it up (see below) and can carry the fix as necessary. This > is now fixed as far as linux-next is concerned, but any non trivial > conflicts should be mentioned to your upstream maintainer when your tree > is submitted for merging. You may also want to consider cooperating > with the maintainer of the conflicting tree to minimise any particularly > complex conflicts. > > -- > Cheers, > Stephen Rothwell > > diff --cc drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c > index de5cb056c9ad,0528c2b1db6e..000000000000 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c > @@@ -1197,10 -1201,7 +1203,10 @@@ static int amdgpu_cs_sync_rings(struct > } > > for (i = 0; i < p->gang_size; ++i) { > + if (p->jobs[i] == leader) > + continue; > + > - r = amdgpu_sync_clone(&leader->sync, &p->jobs[i]->sync); > + r = amdgpu_sync_push_to_job(&p->sync, p->jobs[i]); > if (r) > return r; > } > @@@ -1241,14 -1243,11 +1247,14 @@@ static int amdgpu_cs_submit(struct amdg > for (i = 0; i < p->gang_size; ++i) > drm_sched_job_arm(&p->jobs[i]->base); > > - for (i = 0; i < (p->gang_size - 1); ++i) { > + for (i = 0; i < p->gang_size; ++i) { > struct dma_fence *fence; > > + if (p->jobs[i] == leader) > + continue; > + > fence = &p->jobs[i]->base.s_fence->scheduled; > - r = amdgpu_sync_fence(&leader->sync, fence); > + r = drm_sched_job_add_dependency(&leader->base, fence); > if (r) > goto error_cleanup; > } Note that I had to keep the declaration of "leader" in amdgpu_cs_sync_rings(). -- Cheers, Stephen Rothwell