Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Quoting Mika Kuoppala (2018-09-20 09:30:22) >> Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: >> >> > Remember to release the batch bo reference if we hit an error trying to >> > submit our MI_STORE_DWORD_IMM. >> > >> > References: https://bugs.freedesktop.org/show_bug.cgi?id=107979 >> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> >> > --- >> > drivers/gpu/drm/i915/selftests/i915_gem_context.c | 1 + >> > 1 file changed, 1 insertion(+) >> > >> > diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/selftests/i915_gem_context.c >> > index 79f9bcaf0c05..a89d31075c7a 100644 >> > --- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c >> > +++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c >> > @@ -195,6 +195,7 @@ static int gpu_fill(struct drm_i915_gem_object *obj, >> > i915_request_add(rq); >> > err_batch: >> > i915_vma_unpin(batch); >> > + i915_vma_put(batch); >> >> Looks good in here but in gpu_fill_dw we have similar >> problem? We release the object ref but don't >> release the vma when returning ERR_PTR. > > The dirty secret is that vma don't have refs, they are owned by their > parent object (with a secondary lifetime constraint from the vm). > i915_vma_put(vma) == i915_gem_object_put(vma->obj); Ah. Worry not, your secret is safe with me. Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx