[PATCH 3/3] fixes

Chris Wilson chris at chris-wilson.co.uk
Tue May 28 18:21:32 UTC 2019


---
 drivers/gpu/drm/i915/i915_debugfs.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index faeb5928b78d..7ff9001af739 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -555,31 +555,25 @@ static int i915_gem_object_info(struct seq_file *m, void *data)
 static int i915_gem_gtt_info(struct seq_file *m, void *data)
 {
 	struct drm_info_node *node = m->private;
-	struct drm_i915_private *dev_priv = node_to_i915(node);
-	struct drm_device *dev = &dev_priv->drm;
-	struct drm_i915_gem_object **objects;
-	struct drm_i915_gem_object *obj;
+	struct drm_i915_private *i915 = node_to_i915(node);
+	struct drm_i915_gem_object **objects, *obj;
 	u64 total_obj_size, total_gtt_size;
 	unsigned long nobject, n;
 	int count, ret;
 
-	nobject = READ_ONCE(dev_priv->mm.shrink_count);
+	nobject = READ_ONCE(i915->mm.shrink_count);
 	objects = kvmalloc_array(nobject, sizeof(*objects), GFP_KERNEL);
 	if (!objects)
 		return -ENOMEM;
 
-	ret = mutex_lock_interruptible(&dev->struct_mutex);
-	if (ret)
-		return ret;
-
 	count = 0;
-	spin_lock(&dev_priv->mm.obj_lock);
-	list_for_each_entry(obj, &dev_priv->mm.bound_list, mm.link) {
-		objects[count++] = obj;
+	spin_lock(&i915->mm.obj_lock);
+	list_for_each_entry(obj, &i915->mm.bound_list, mm.link) {
+		objects[count++] = i915_gem_object_get(obj);
 		if (count == nobject)
 			break;
 	}
-	spin_unlock(&dev_priv->mm.obj_lock);
+	spin_unlock(&i915->mm.obj_lock);
 
 	total_obj_size = total_gtt_size = 0;
 	for (n = 0;  n < count; n++) {
@@ -590,10 +584,9 @@ static int i915_gem_gtt_info(struct seq_file *m, void *data)
 		seq_putc(m, '\n');
 		total_obj_size += obj->base.size;
 		total_gtt_size += i915_gem_obj_total_ggtt_size(obj);
+		i915_gem_object_put(obj);
 	}
 
-	mutex_unlock(&dev->struct_mutex);
-
 	seq_printf(m, "Total %d objects, %llu bytes, %llu GTT size\n",
 		   count, total_obj_size, total_gtt_size);
 	kvfree(objects);
-- 
2.20.1



More information about the Intel-gfx-trybot mailing list