Created attachment 99166 [details] dmesg Spotted on my gm45, not yet confirmed/tested anywhere else. Also not yet bisected.
For the final explosion: diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c index 55b3e52..4c7cd24 100644 --- a/drivers/gpu/drm/i915/i915_gem_context.c +++ b/drivers/gpu/drm/i915/i915_gem_context.c @@ -454,6 +454,8 @@ void i915_gem_context_fini(struct drm_device *dev) i915_gem_context_unreference(dctx); dev_priv->ring[RCS].last_context = NULL; } + + i915_gem_object_ggtt_unpin(dctx->obj); } for (i = 0; i < I915_NUM_RINGS; i++) { @@ -466,7 +468,6 @@ void i915_gem_context_fini(struct drm_device *dev) ring->last_context = NULL; } - i915_gem_object_ggtt_unpin(dctx->obj); i915_gem_context_unreference(dctx); }
Works like a charm, thanks for spotting this quickly and please submit to intel-gfx.
commit d3b448d9917a3d6531e499d88bfb13ea5e31e4ad Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri May 16 18:59:00 2014 +0100 drm/i915: Only unpin the default ctx object if it exists
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.