Message ID | 1373060390-1109-1-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Jul 05, 2013 at 11:39:50PM +0200, Daniel Vetter wrote: > It's not a good idea to also run the pipe_control cleanup. > > This regression has been introduced whith the original cs tlb w/a in > > commit b45305fce5bb1abec263fcff9d81ebecd6306ede > Author: Daniel Vetter <daniel.vetter@ffwll.ch> > Date: Mon Dec 17 16:21:27 2012 +0100 > > drm/i915: Implement workaround for broken CS tlb on i830/845 > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64610 > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: stable@vger.kernel.org > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Just promise me on the next ring->private, we will add a real destructor. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
On Fri, Jul 05, 2013 at 11:53:41PM +0100, Chris Wilson wrote: > On Fri, Jul 05, 2013 at 11:39:50PM +0200, Daniel Vetter wrote: > > It's not a good idea to also run the pipe_control cleanup. > > > > This regression has been introduced whith the original cs tlb w/a in > > > > commit b45305fce5bb1abec263fcff9d81ebecd6306ede > > Author: Daniel Vetter <daniel.vetter@ffwll.ch> > > Date: Mon Dec 17 16:21:27 2012 +0100 > > > > drm/i915: Implement workaround for broken CS tlb on i830/845 > > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64610 > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > > Cc: stable@vger.kernel.org > > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > Just promise me on the next ring->private, we will add a real > destructor. > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Picked up for -fixes, thanks for the patch. -Daniel
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index e51ab55..7b4ece9 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -518,9 +518,6 @@ cleanup_pipe_control(struct intel_ring_buffer *ring) struct pipe_control *pc = ring->private; struct drm_i915_gem_object *obj; - if (!ring->private) - return; - obj = pc->obj; kunmap(sg_page(obj->pages->sgl)); @@ -528,7 +525,6 @@ cleanup_pipe_control(struct intel_ring_buffer *ring) drm_gem_object_unreference(&obj->base); kfree(pc); - ring->private = NULL; } static int init_render_ring(struct intel_ring_buffer *ring) @@ -601,7 +597,10 @@ static void render_ring_cleanup(struct intel_ring_buffer *ring) if (HAS_BROKEN_CS_TLB(dev)) drm_gem_object_unreference(to_gem_object(ring->private)); - cleanup_pipe_control(ring); + if (INTEL_INFO(dev)->gen >= 5) + cleanup_pipe_control(ring); + + ring->private = NULL; } static void
It's not a good idea to also run the pipe_control cleanup. This regression has been introduced whith the original cs tlb w/a in commit b45305fce5bb1abec263fcff9d81ebecd6306ede Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Mon Dec 17 16:21:27 2012 +0100 drm/i915: Implement workaround for broken CS tlb on i830/845 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=64610 Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/gpu/drm/i915/intel_ringbuffer.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)