mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-07 13:13:57 +08:00
drm/i915: Only drop the batch-pool's object reference
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
This commit is contained in:
parent
15f7bbc735
commit
f67cbce0f1
@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user