Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06c12ae3 authored by Lionel Landwerlin's avatar Lionel Landwerlin Committed by Jani Nikula
Browse files

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


(cherry picked from commit a5af1df7)
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent aa56a292
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2515,6 +2515,9 @@ static int i915_perf_release(struct inode *inode, struct file *file)
	i915_perf_destroy_locked(stream);
	mutex_unlock(&dev_priv->perf.lock);

	/* Release the reference the perf stream kept on the driver. */
	drm_dev_put(&dev_priv->drm);

	return 0;
}

@@ -2650,6 +2653,11 @@ i915_perf_open_ioctl_locked(struct drm_i915_private *dev_priv,
	if (!(param->flags & I915_PERF_FLAG_DISABLED))
		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;

err_open: