summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_gem_evict.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-11-25 22:32:06 +0300
committerChris Wilson <chris@chris-wilson.co.uk>2010-11-26 00:19:26 +0300
commit432e58edc9de1d9c3d6a7b444b3c455b8f209a7d (patch)
tree8dd0b0edb78ddf1b59e6f8e5cd8939ff6ed961ec /drivers/gpu/drm/i915/i915_gem_evict.c
parent54cf91dc4e51fd5070a9a2346377493cc38a1ca9 (diff)
downloadlinux-432e58edc9de1d9c3d6a7b444b3c455b8f209a7d.tar.xz
drm/i915: Avoid allocation for execbuffer object list
Besides the minimal improvement in reducing the execbuffer overhead, the real benefit is clarifying a few routines. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_evict.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_evict.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c
index 03e15d37b550..78b8cf90c922 100644
--- a/drivers/gpu/drm/i915/i915_gem_evict.c
+++ b/drivers/gpu/drm/i915/i915_gem_evict.c
@@ -34,7 +34,7 @@
static bool
mark_free(struct drm_i915_gem_object *obj, struct list_head *unwind)
{
- list_add(&obj->evict_list, unwind);
+ list_add(&obj->exec_list, unwind);
drm_gem_object_reference(&obj->base);
return drm_mm_scan_add_block(obj->gtt_space);
}
@@ -127,7 +127,7 @@ i915_gem_evict_something(struct drm_device *dev, int min_size,
}
/* Nothing found, clean up and bail out! */
- list_for_each_entry(obj, &unwind_list, evict_list) {
+ list_for_each_entry(obj, &unwind_list, exec_list) {
ret = drm_mm_scan_remove_block(obj->gtt_space);
BUG_ON(ret);
drm_gem_object_unreference(&obj->base);
@@ -146,12 +146,12 @@ found:
while (!list_empty(&unwind_list)) {
obj = list_first_entry(&unwind_list,
struct drm_i915_gem_object,
- evict_list);
+ exec_list);
if (drm_mm_scan_remove_block(obj->gtt_space)) {
- list_move(&obj->evict_list, &eviction_list);
+ list_move(&obj->exec_list, &eviction_list);
continue;
}
- list_del(&obj->evict_list);
+ list_del_init(&obj->exec_list);
drm_gem_object_unreference(&obj->base);
}
@@ -159,10 +159,10 @@ found:
while (!list_empty(&eviction_list)) {
obj = list_first_entry(&eviction_list,
struct drm_i915_gem_object,
- evict_list);
+ exec_list);
if (ret == 0)
ret = i915_gem_object_unbind(obj);
- list_del(&obj->evict_list);
+ list_del_init(&obj->exec_list);
drm_gem_object_unreference(&obj->base);
}