Hi Dave, Today's linux-next merge of the drm tree got a conflict in drivers/gpu/drm/radeon/radeon_cs.c between commit 86b276385c6a ("drm/radeon: sync all BOs involved in a CS v2") from Linus' tree and commit 975700d2cc84 ("drm/radeon: split semaphore and sync object handling v2") from the drm tree. I fixed it up (I think - see below) and can carry the fix as necessary (no action is required). -- Cheers, Stephen Rothwell sfr@canb.auug.org.au diff --cc drivers/gpu/drm/radeon/radeon_cs.c index 6f377de099f9,75f22e5e999f..000000000000 --- a/drivers/gpu/drm/radeon/radeon_cs.c +++ b/drivers/gpu/drm/radeon/radeon_cs.c @@@ -251,19 -251,22 +251,20 @@@ static int radeon_cs_get_ring(struct ra static int radeon_cs_sync_rings(struct radeon_cs_parser *p) { - int i, r = 0; + struct radeon_cs_reloc *reloc; + int r; - for (i = 0; i < p->nrelocs; i++) { + list_for_each_entry(reloc, &p->validated, tv.head) { struct reservation_object *resv; - if (!p->relocs[i].robj) - continue; - - resv = p->relocs[i].robj->tbo.resv; + resv = reloc->robj->tbo.resv; - r = radeon_semaphore_sync_resv(p->rdev, p->ib.semaphore, resv, - reloc->tv.shared); + r = radeon_sync_resv(p->rdev, &p->ib.sync, resv, - p->relocs[i].tv.shared); ++ reloc->tv.shared); + if (r) - break; + return r; } - return r; + return 0; } /* XXX: note that this is called from the legacy UMS CS ioctl as well */