From: Daniel Vetter Date: Tue, 17 Dec 2013 22:42:11 +0000 (+0100) Subject: drm/i915: grab a pages pin count for preallocate stolen X-Git-Tag: next-20131220~53^2 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=d8ccba866356e5b8989ff9081df66cf300b1f834;p=karo-tx-linux.git drm/i915: grab a pages pin count for preallocate stolen But only when we indeed set up a gtt mapping. We need this since the vma also holds a pages_pin_count, on top of the unconditional pages_pin_count we grab for all stolen objects (to avoid swap-out). This should avoid a pages_pin_count underrun when cleaning up framebuffers objects taken over from the BIOS. Chris mentioned in his review that this bug even predates the vma conversion. Reported-by: Jesse Barnes Cc: Jesse Barnes Cc: Ben Widawsky Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter --- diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c index d284d892ed94..fed87ec17211 100644 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -420,6 +420,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev, list_add_tail(&obj->global_list, &dev_priv->mm.bound_list); list_add_tail(&vma->mm_list, &ggtt->inactive_list); + i915_gem_object_pin_pages(obj); return obj;