drm/i915: debugfs/i915_gem_interrupt_info does not need struct_mutex
authorChris Wilson <chris@chris-wilson.co.uk>
Sat, 3 Sep 2016 06:53:43 +0000 (07:53 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Sat, 3 Sep 2016 12:11:05 +0000 (13:11 +0100)
i915_gem_interrupt_info() only looks at mmio registers, and the waiters
under a spinlock. It doesn't need struct_mutex (but does need the rpm
wakelock for mmio access). Maybe useful using get_if_notidle?

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20160903065343.25151-2-chris@chris-wilson.co.uk
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
drivers/gpu/drm/i915/i915_debugfs.c

index 3590f1fe988e73cd301669a5e49ff6abd87b092c..b8e40fde132abdfd2d945de03e0bba1e21927ab2 100644 (file)
@@ -726,13 +726,9 @@ static int i915_gem_seqno_info(struct seq_file *m, void *data)
 static int i915_interrupt_info(struct seq_file *m, void *data)
 {
        struct drm_i915_private *dev_priv = node_to_i915(m->private);
-       struct drm_device *dev = &dev_priv->drm;
        struct intel_engine_cs *engine;
-       int ret, i, pipe;
+       int i, pipe;
 
-       ret = mutex_lock_interruptible(&dev->struct_mutex);
-       if (ret)
-               return ret;
        intel_runtime_pm_get(dev_priv);
 
        if (IS_CHERRYVIEW(dev_priv)) {
@@ -908,7 +904,6 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
                i915_ring_seqno_info(m, engine);
        }
        intel_runtime_pm_put(dev_priv);
-       mutex_unlock(&dev->struct_mutex);
 
        return 0;
 }