lib: Fix assert failure in ring stop code
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 16 Apr 2014 14:07:07 +0000 (17:07 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 16 Apr 2014 16:21:17 +0000 (19:21 +0300)
The assert in igt_set_stop_rings() is a bit bogus. Suppsoedly it was
meant to assure that the caller always restores the rings to running
state after stopping them. But in its current form it will trigger
any time someone calls the function and the rings were already stopped.
So you can't even restore the rings to running state w/o the assert
triggering.

Fix it up so that it'll ignore the current ring state when we're trying
to restore the rings back to running state.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
lib/igt_debugfs.c

index 0996666..52b8e2f 100644 (file)
@@ -714,7 +714,7 @@ void igt_set_stop_rings(enum stop_ring_flags flags)
                              STOP_RING_ALLOW_ERRORS)) == 0);
 
        current = igt_get_stop_rings();
-       igt_assert_f(current == 0,
+       igt_assert_f(flags == 0 || current == 0,
                     "previous i915_ring_stop is still 0x%x\n", current);
 
        stop_rings_write(flags);