drm/i915: Limit i915_ring_test_irq debugfs to actual rings
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 17 Jun 2016 13:35:05 +0000 (14:35 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 4 Jul 2016 09:32:57 +0000 (10:32 +0100)
For simplicity in testing, only report known rings in the mask. This
allows userspace to try and trigger a missed irq on every ring and do a
comparison between i915_ring_test_irq and i915_ring_missed_irq to see if
any rings failed.

v2: Move the debug message to after the rings are selected (so that the
message accurately reflects reality)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1466170505-8048-1-git-send-email-chris@chris-wilson.co.uk
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
drivers/gpu/drm/i915/i915_debugfs.c

index e4409ddc60e58762e5a098799cf52f283cb0205b..3464c23f2fc6cc5cbb560e5b5bc6df74bf19a976 100644 (file)
@@ -4877,17 +4877,10 @@ i915_ring_test_irq_set(void *data, u64 val)
 {
        struct drm_device *dev = data;
        struct drm_i915_private *dev_priv = dev->dev_private;
-       int ret;
 
+       val &= INTEL_INFO(dev_priv)->ring_mask;
        DRM_DEBUG_DRIVER("Masking interrupts on rings 0x%08llx\n", val);
-
-       /* Lock against concurrent debugfs callers */
-       ret = mutex_lock_interruptible(&dev->struct_mutex);
-       if (ret)
-               return ret;
-
        dev_priv->gpu_error.test_irq_rings = val;
-       mutex_unlock(&dev->struct_mutex);
 
        return 0;
 }