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

Commit b2d99135 authored by Felix Xiong's avatar Felix Xiong Committed by Gerrit - the friendly Code Review server
Browse files

drm/msm: fence should be protected by mutex



Accessing to the fences contained in struct msm_gem_object should be
protected by mutex.

Change-Id: Iedf29f8ea6ed7be8ae90a37f9543169ab3886aea
Signed-off-by: default avatarFelix Xiong <xayang@codeaurora.org>
parent 055a6e49
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -567,6 +567,10 @@ void msm_gem_move_to_active(struct drm_gem_object *obj,
		struct msm_gpu *gpu, bool write, uint32_t fence)
{
	struct msm_gem_object *msm_obj = to_msm_bo(obj);
	struct drm_device *dev = obj->dev;

	WARN_ON(!mutex_is_locked(&dev->struct_mutex));

	msm_obj->gpu = gpu;
	if (write)
		msm_obj->write_fence = fence;
+3 −0
Original line number Diff line number Diff line
@@ -81,11 +81,14 @@ static inline uint32_t msm_gem_fence(struct msm_gem_object *msm_obj,
		uint32_t op)
{
	uint32_t fence = 0;
	struct drm_device *dev = msm_obj->base.dev;

	mutex_lock(&dev->struct_mutex);
	if (op & MSM_PREP_READ)
		fence = msm_obj->write_fence;
	if (op & MSM_PREP_WRITE)
		fence = max(fence, msm_obj->read_fence);
	mutex_unlock(&dev->struct_mutex);

	return fence;
}