drm/i915/lrc: Remove superfluous WARN_ON
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 26 Jan 2018 12:18:46 +0000 (12:18 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 26 Jan 2018 13:03:07 +0000 (13:03 +0000)
Remove the WARN_ON(ce->state) inside the static function only called
when ce->state == NULL and downgrade the w/a batch setup warning into a
developer only mode (GEM_WARN_ON).

v2: Move the deferred alloc guard into the callee, eliminating the need
for the WARN_ON:
add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-1 (-1)
Function                                     old     new   delta
execlists_context_pin                       1819    1818      -1

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180126121846.12007-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_lrc.c

index 29b14d7d4b07af31c6a7fcdb8ed227a2ebf6dbe7..2fa328d512fcfb7cdc778e25311242e0ba63c1d5 100644 (file)
@@ -1092,11 +1092,9 @@ execlists_context_pin(struct intel_engine_cs *engine,
                goto out;
        GEM_BUG_ON(!ce->pin_count); /* no overflow please! */
 
-       if (!ce->state) {
-               ret = execlists_context_deferred_alloc(ctx, engine);
-               if (ret)
-                       goto err;
-       }
+       ret = execlists_context_deferred_alloc(ctx, engine);
+       if (ret)
+               goto err;
        GEM_BUG_ON(!ce->state);
 
        ret = __context_pin(ctx, ce->state);
@@ -1413,7 +1411,8 @@ static int intel_init_workaround_bb(struct intel_engine_cs *engine)
         */
        for (i = 0; i < ARRAY_SIZE(wa_bb_fn); i++) {
                wa_bb[i]->offset = batch_ptr - batch;
-               if (WARN_ON(!IS_ALIGNED(wa_bb[i]->offset, CACHELINE_BYTES))) {
+               if (GEM_WARN_ON(!IS_ALIGNED(wa_bb[i]->offset,
+                                           CACHELINE_BYTES))) {
                        ret = -EINVAL;
                        break;
                }
@@ -2265,7 +2264,8 @@ static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
        struct intel_ring *ring;
        int ret;
 
-       WARN_ON(ce->state);
+       if (ce->state)
+               return 0;
 
        context_size = round_up(engine->context_size, I915_GTT_PAGE_SIZE);