Commit a5af1df7 authored by Lionel Landwerlin's avatar Lionel Landwerlin Committed by Chris Wilson

drm/i915/perf: ensure we keep a reference on the driver

The i915 perf stream has its own file descriptor and is tied to
reference of the driver. We haven't taken care of keep the driver
alive.
Signed-off-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
Suggested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Fixes: eec688e1 ("drm/i915: Add i915 perf infrastructure")
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20190709123351.5645-2-lionel.g.landwerlin@intel.com
parent 681c774d
...@@ -2517,6 +2517,9 @@ static int i915_perf_release(struct inode *inode, struct file *file) ...@@ -2517,6 +2517,9 @@ static int i915_perf_release(struct inode *inode, struct file *file)
i915_perf_destroy_locked(stream); i915_perf_destroy_locked(stream);
mutex_unlock(&dev_priv->perf.lock); mutex_unlock(&dev_priv->perf.lock);
/* Release the reference the perf stream kept on the driver. */
drm_dev_put(&dev_priv->drm);
return 0; return 0;
} }
...@@ -2652,6 +2655,11 @@ i915_perf_open_ioctl_locked(struct drm_i915_private *dev_priv, ...@@ -2652,6 +2655,11 @@ i915_perf_open_ioctl_locked(struct drm_i915_private *dev_priv,
if (!(param->flags & I915_PERF_FLAG_DISABLED)) if (!(param->flags & I915_PERF_FLAG_DISABLED))
i915_perf_enable_locked(stream); i915_perf_enable_locked(stream);
/* Take a reference on the driver that will be kept with stream_fd
* until its release.
*/
drm_dev_get(&dev_priv->drm);
return stream_fd; return stream_fd;
err_open: err_open:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment