|
@@ -134,6 +134,8 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj)
|
|
int pin_count = 0;
|
|
int pin_count = 0;
|
|
enum intel_engine_id id;
|
|
enum intel_engine_id id;
|
|
|
|
|
|
|
|
+ lockdep_assert_held(&obj->base.dev->struct_mutex);
|
|
|
|
+
|
|
seq_printf(m, "%pK: %s%s%s%s %8zdKiB %02x %02x [ ",
|
|
seq_printf(m, "%pK: %s%s%s%s %8zdKiB %02x %02x [ ",
|
|
&obj->base,
|
|
&obj->base,
|
|
obj->active ? "*" : " ",
|
|
obj->active ? "*" : " ",
|
|
@@ -1894,6 +1896,11 @@ static int i915_gem_framebuffer_info(struct seq_file *m, void *data)
|
|
struct drm_device *dev = node->minor->dev;
|
|
struct drm_device *dev = node->minor->dev;
|
|
struct intel_framebuffer *fbdev_fb = NULL;
|
|
struct intel_framebuffer *fbdev_fb = NULL;
|
|
struct drm_framebuffer *drm_fb;
|
|
struct drm_framebuffer *drm_fb;
|
|
|
|
+ int ret;
|
|
|
|
+
|
|
|
|
+ ret = mutex_lock_interruptible(&dev->struct_mutex);
|
|
|
|
+ if (ret)
|
|
|
|
+ return ret;
|
|
|
|
|
|
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
if (to_i915(dev)->fbdev) {
|
|
if (to_i915(dev)->fbdev) {
|
|
@@ -1928,6 +1935,7 @@ static int i915_gem_framebuffer_info(struct seq_file *m, void *data)
|
|
seq_putc(m, '\n');
|
|
seq_putc(m, '\n');
|
|
}
|
|
}
|
|
mutex_unlock(&dev->mode_config.fb_lock);
|
|
mutex_unlock(&dev->mode_config.fb_lock);
|
|
|
|
+ mutex_unlock(&dev->struct_mutex);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|