Quoting Tvrtko Ursulin (2018-07-05 10:50:36) > > On 05/07/2018 07:56, Chris Wilson wrote: > > We can now use the full release mechanism (i915_ppgtt_put) for our local > > ppgtt allocation in igt_ppgtt_alloc. > > > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > --- > > drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c > > index 4bfb0537f9be..e108fe4e0fd9 100644 > > --- a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c > > +++ b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c > > @@ -202,9 +202,8 @@ static int igt_ppgtt_alloc(void *arg) > > > > err_ppgtt_cleanup: > > mutex_lock(&dev_priv->drm.struct_mutex); > > - ppgtt->vm.cleanup(&ppgtt->vm); > > + i915_ppgtt_put(ppgtt); > > mutex_unlock(&dev_priv->drm.struct_mutex); > > - kfree(ppgtt); > > return err; > > } > > > > > > Hm, it's not obvious why this works, if it does. This ppgtt it creates > does not call kref_init on ppgtt->ref, or i915_address_space_init. > Colour me confused. Are you sure? There were a few ordering issues that required pushing i915_address_space_init earlier into __hw_ppgtt_create() itself that dragged the kref_init along for the fun. -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx