On Thu, Feb 20, 2014 at 11:47:06AM -0800, Ben Widawsky wrote: > At one time it was expected to be called in multiple places by kref_put. > At the current time however, it is all contained within > i915_gem_context.c. > > This patch makes an upcoming required addition a bit nicer since it too > doesn't need to be defined in a header file. > > Signed-off-by: Ben Widawsky <ben@xxxxxxxxxxxx> I'm ridiculously happy to see this get out of the header file, it should never have been there. Really. *original reply heavily redacted* ;-) Cheers, Daniel > --- > drivers/gpu/drm/i915/i915_drv.h | 36 --------------------------------- > drivers/gpu/drm/i915/i915_gem_context.c | 36 +++++++++++++++++++++++++++++++++ > 2 files changed, 36 insertions(+), 36 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 8c64831..57556fb 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -2387,42 +2387,6 @@ static inline bool intel_enable_ppgtt(struct drm_device *dev, bool full) > return HAS_ALIASING_PPGTT(dev); > } > > -static inline void ppgtt_release(struct kref *kref) > -{ > - struct i915_hw_ppgtt *ppgtt = container_of(kref, struct i915_hw_ppgtt, ref); > - struct drm_device *dev = ppgtt->base.dev; > - struct drm_i915_private *dev_priv = dev->dev_private; > - struct i915_address_space *vm = &ppgtt->base; > - > - if (ppgtt == dev_priv->mm.aliasing_ppgtt || > - (list_empty(&vm->active_list) && list_empty(&vm->inactive_list))) { > - ppgtt->base.cleanup(&ppgtt->base); > - return; > - } > - > - /* > - * Make sure vmas are unbound before we take down the drm_mm > - * > - * FIXME: Proper refcounting should take care of this, this shouldn't be > - * needed at all. > - */ > - if (!list_empty(&vm->active_list)) { > - struct i915_vma *vma; > - > - list_for_each_entry(vma, &vm->active_list, mm_list) > - if (WARN_ON(list_empty(&vma->vma_link) || > - list_is_singular(&vma->vma_link))) > - break; > - > - i915_gem_evict_vm(&ppgtt->base, true); > - } else { > - i915_gem_retire_requests(dev); > - i915_gem_evict_vm(&ppgtt->base, false); > - } > - > - ppgtt->base.cleanup(&ppgtt->base); > -} > - > /* i915_gem_stolen.c */ > int i915_gem_init_stolen(struct drm_device *dev); > int i915_gem_stolen_setup_compression(struct drm_device *dev, int size); > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c > index f8c21a6..171a2ef 100644 > --- a/drivers/gpu/drm/i915/i915_gem_context.c > +++ b/drivers/gpu/drm/i915/i915_gem_context.c > @@ -99,6 +99,42 @@ > static int do_switch(struct intel_ring_buffer *ring, > struct i915_hw_context *to); > > +static void ppgtt_release(struct kref *kref) > +{ > + struct i915_hw_ppgtt *ppgtt = container_of(kref, struct i915_hw_ppgtt, ref); > + struct drm_device *dev = ppgtt->base.dev; > + struct drm_i915_private *dev_priv = dev->dev_private; > + struct i915_address_space *vm = &ppgtt->base; > + > + if (ppgtt == dev_priv->mm.aliasing_ppgtt || > + (list_empty(&vm->active_list) && list_empty(&vm->inactive_list))) { > + ppgtt->base.cleanup(&ppgtt->base); > + return; > + } > + > + /* > + * Make sure vmas are unbound before we take down the drm_mm > + * > + * FIXME: Proper refcounting should take care of this, this shouldn't be > + * needed at all. > + */ > + if (!list_empty(&vm->active_list)) { > + struct i915_vma *vma; > + > + list_for_each_entry(vma, &vm->active_list, mm_list) > + if (WARN_ON(list_empty(&vma->vma_link) || > + list_is_singular(&vma->vma_link))) > + break; > + > + i915_gem_evict_vm(&ppgtt->base, true); > + } else { > + i915_gem_retire_requests(dev); > + i915_gem_evict_vm(&ppgtt->base, false); > + } > + > + ppgtt->base.cleanup(&ppgtt->base); > +} > + > static size_t get_context_alignment(struct drm_device *dev) > { > if (IS_GEN6(dev)) > -- > 1.9.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx