From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH .5/9] drm/i915: Move ppgtt_release out of the header Date: Tue, 4 Mar 2014 15:53:39 +0100 Message-ID: <20140304145339.GH17001@phenom.ffwll.local> References: <1392876349-24684-2-git-send-email-benjamin.widawsky@intel.com> <1392925627-6033-1-git-send-email-benjamin.widawsky@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-ea0-f174.google.com (mail-ea0-f174.google.com [209.85.215.174]) by gabe.freedesktop.org (Postfix) with ESMTP id 7F8C5FB741 for ; Tue, 4 Mar 2014 06:53:44 -0800 (PST) Received: by mail-ea0-f174.google.com with SMTP id f15so399219eak.5 for ; Tue, 04 Mar 2014 06:53:43 -0800 (PST) Content-Disposition: inline In-Reply-To: <1392925627-6033-1-git-send-email-benjamin.widawsky@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Ben Widawsky Cc: Intel GFX , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org 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 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@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch