aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index b25d22971513..f7cd3461dc4f 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2352,7 +2352,7 @@ static struct drm_i915_fence_reg *
2352i915_find_fence_reg(struct drm_device *dev) 2352i915_find_fence_reg(struct drm_device *dev)
2353{ 2353{
2354 struct drm_i915_private *dev_priv = dev->dev_private; 2354 struct drm_i915_private *dev_priv = dev->dev_private;
2355 struct drm_i915_fence_reg *reg, *first, *avail; 2355 struct drm_i915_fence_reg *reg, *avail;
2356 int i; 2356 int i;
2357 2357
2358 /* First try to find a free reg */ 2358 /* First try to find a free reg */
@@ -2370,24 +2370,14 @@ i915_find_fence_reg(struct drm_device *dev)
2370 return NULL; 2370 return NULL;
2371 2371
2372 /* None available, try to steal one or wait for a user to finish */ 2372 /* None available, try to steal one or wait for a user to finish */
2373 avail = first = NULL;
2374 list_for_each_entry(reg, &dev_priv->mm.fence_list, lru_list) { 2373 list_for_each_entry(reg, &dev_priv->mm.fence_list, lru_list) {
2375 if (reg->pin_count) 2374 if (reg->pin_count)
2376 continue; 2375 continue;
2377 2376
2378 if (first == NULL) 2377 return reg;
2379 first = reg;
2380
2381 if (reg->obj->last_fenced_seqno == 0) {
2382 avail = reg;
2383 break;
2384 }
2385 } 2378 }
2386 2379
2387 if (avail == NULL) 2380 return NULL;
2388 avail = first;
2389
2390 return avail;
2391} 2381}
2392 2382
2393/** 2383/**