Hi all,
On Wed, 14 Aug 2019 12:54:33 +1000 Stephen Rothwell sfr@canb.auug.org.au wrote:
Today's linux-next merge of the drm-misc tree got a conflict in:
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c drivers/gpu/drm/i915/i915_vma.c drivers/gpu/drm/i915/i915_gem_batch_pool.c drivers/gpu/drm/i915/gem/i915_gem_object.c drivers/gpu/drm/i915/gt/intel_engine_pool.c
between commits:
a93615f900bd ("drm/i915: Throw away the active object retirement complexity") 12c255b5dad1 ("drm/i915: Provide an i915_active.acquire callback") cd2a4eaf8c79 ("drm/i915: Report resv_obj allocation failure") b40d73784ffc ("drm/i915: Replace struct_mutex for batch pool serialisation") ab2f7a5c18b5 ("drm/amdgpu: Implement VRAM wipe on release") 0c159ffef628 ("drm/i915/gem: Defer obj->base.resv fini until RCU callback")
from the drm and drm-intel trees and commit:
52791eeec1d9 ("dma-buf: rename reservation_object to dma_resv")
from the drm-misc tree.
I fixed it up (see below and I added the following merge fix patch) 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.
So the parts of this that affected the drm tree are now fixed, but the conflicts between the drm-intel and drm-misc trees are now between the drm-intel and drm trees.
The added patch becomes:
From: Stephen Rothwell sfr@canb.auug.org.au Date: Wed, 14 Aug 2019 12:48:39 +1000 Subject: [PATCH] drm: fix up fallout from "dma-buf: rename reservation_object to dma_resv"
Signed-off-by: Stephen Rothwell sfr@canb.auug.org.au --- drivers/gpu/drm/i915/gt/intel_engine_pool.c | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pool.c b/drivers/gpu/drm/i915/gt/intel_engine_pool.c index 03d90b49584a..4cd54c569911 100644 --- a/drivers/gpu/drm/i915/gt/intel_engine_pool.c +++ b/drivers/gpu/drm/i915/gt/intel_engine_pool.c @@ -43,12 +43,12 @@ static int pool_active(struct i915_active *ref) { struct intel_engine_pool_node *node = container_of(ref, typeof(*node), active); - struct reservation_object *resv = node->obj->base.resv; + struct dma_resv *resv = node->obj->base.resv; int err;
- if (reservation_object_trylock(resv)) { - reservation_object_add_excl_fence(resv, NULL); - reservation_object_unlock(resv); + if (dma_resv_trylock(resv)) { + dma_resv_add_excl_fence(resv, NULL); + dma_resv_unlock(resv); }
err = i915_gem_object_pin_pages(node->obj);
I think the remaining merge resolution is:
diff --cc drivers/gpu/drm/i915/i915_vma.c index 8be1bbef40e5,ebfd03d117cd..000000000000 --- a/drivers/gpu/drm/i915/i915_vma.c +++ b/drivers/gpu/drm/i915/i915_vma.c @@@ -911,21 -951,16 +911,21 @@@ int i915_vma_move_to_active(struct i915 if (intel_fb_obj_invalidate(obj, ORIGIN_CS)) __i915_active_request_set(&obj->frontbuffer_write, rq);
- reservation_object_add_excl_fence(vma->resv, &rq->fence); ++ dma_resv_add_excl_fence(vma->resv, &rq->fence); + obj->write_domain = I915_GEM_DOMAIN_RENDER; obj->read_domains = 0; + } else { - err = reservation_object_reserve_shared(vma->resv, 1); ++ err = dma_resv_reserve_shared(vma->resv, 1); + if (unlikely(err)) + return err; + - reservation_object_add_shared_fence(vma->resv, &rq->fence); ++ dma_resv_add_shared_fence(vma->resv, &rq->fence); + obj->write_domain = 0; } obj->read_domains |= I915_GEM_GPU_DOMAINS; + obj->mm.dirty = true;
- if (flags & EXEC_OBJECT_NEEDS_FENCE) - __i915_active_request_set(&vma->last_fence, rq); - - export_fence(vma, rq, flags); + GEM_BUG_ON(!i915_vma_is_active(vma)); return 0; }