drm/i915: Drop uncore spinlock for reading debugfs forcewake counters
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 23 Mar 2017 10:19:44 +0000 (10:19 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 23 Mar 2017 10:22:05 +0000 (10:22 +0000)
The set of available structs is not protected by the spinlock, and for
the single read we can use READ_ONCE instead.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170323101944.21627-7-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_debugfs.c

index fcac795d43961b02756a5cdf7da71ab46df3aa57..f30591f44d3a6e6ccd7f4a1220fc577b501e673b 100644 (file)
@@ -1459,17 +1459,14 @@ static int ironlake_drpc_info(struct seq_file *m)
 
 static int i915_forcewake_domains(struct seq_file *m, void *data)
 {
-       struct drm_i915_private *dev_priv = node_to_i915(m->private);
+       struct drm_i915_private *i915 = node_to_i915(m->private);
        struct intel_uncore_forcewake_domain *fw_domain;
        unsigned int tmp;
 
-       spin_lock_irq(&dev_priv->uncore.lock);
-       for_each_fw_domain(fw_domain, dev_priv, tmp) {
+       for_each_fw_domain(fw_domain, i915, tmp)
                seq_printf(m, "%s.wake_count = %u\n",
                           intel_uncore_forcewake_domain_to_str(fw_domain->id),
-                          fw_domain->wake_count);
-       }
-       spin_unlock_irq(&dev_priv->uncore.lock);
+                          READ_ONCE(fw_domain->wake_count));
 
        return 0;
 }