Skip to content

Commit

Permalink
drm/i915: Only drop the batch-pool's object reference
Browse files Browse the repository at this point in the history
The obj->batch_pool_link is only inspected when traversing the batch
pool list and when on the batch pool list the object is referenced. Thus
when freeing the batch pool list, we only need to unreference the object
and do not have to worry about the obj->batch_pool_link.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1469432687-22756-5-git-send-email-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1469530913-17180-4-git-send-email-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Jul 26, 2016
1 parent 15f7bbc commit f67cbce
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions drivers/gpu/drm/i915/i915_gem_batch_pool.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,14 @@ void i915_gem_batch_pool_fini(struct i915_gem_batch_pool *pool)
WARN_ON(!mutex_is_locked(&pool->dev->struct_mutex));

for (n = 0; n < ARRAY_SIZE(pool->cache_list); n++) {
while (!list_empty(&pool->cache_list[n])) {
struct drm_i915_gem_object *obj =
list_first_entry(&pool->cache_list[n],
struct drm_i915_gem_object,
batch_pool_link);
struct drm_i915_gem_object *obj, *next;

list_del(&obj->batch_pool_link);
list_for_each_entry_safe(obj, next,
&pool->cache_list[n],
batch_pool_link)
i915_gem_object_put(obj);
}

INIT_LIST_HEAD(&pool->cache_list[n]);
}
}

Expand Down

0 comments on commit f67cbce

Please sign in to comment.