diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 933e865..ac6b1cc 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -1453,6 +1453,7 @@ i915_gem_object_put_pages(struct drm_gem_object *obj) int page_count = obj->size / PAGE_SIZE; int i; + BUG_ON(obj_priv->pages == NULL); BUG_ON(obj_priv->pages_refcount == 0); BUG_ON(obj_priv->madv == __I915_MADV_PURGED); @@ -2039,10 +2040,10 @@ i915_gem_object_unbind(struct drm_gem_object *obj) obj_priv->agp_mem = NULL; } - i915_gem_object_put_pages(obj); - BUG_ON(obj_priv->pages_refcount); - if (obj_priv->gtt_space) { + i915_gem_object_put_pages(obj); + BUG_ON(obj_priv->pages_refcount); + atomic_dec(&dev->gtt_count); atomic_sub(obj->size, &dev->gtt_memory);