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

Commit 7e60946f authored by Xiong Zhang's avatar Xiong Zhang Committed by Zhenyu Wang
Browse files

drm/i915/gvt: Release gvt->lock at the failure of finding page track



page_track_handler take lock at the beginning, the lock should be released
at the failure of finding page track. Otherwise deadlock will happen.

Fixes: e502a2af ("drm/i915/gvt: Provide generic page_track infrastructure for write-protected page")
Signed-off-by: default avatarXiong Zhang <xiong.y.zhang@intel.com>
Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
parent 6846dfeb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -165,7 +165,7 @@ int intel_vgpu_page_track_handler(struct intel_vgpu *vgpu, u64 gpa,

	page_track = intel_vgpu_find_page_track(vgpu, gpa >> PAGE_SHIFT);
	if (!page_track)
		return 0;
		goto out;

	if (unlikely(vgpu->failsafe)) {
		/* Remove write protection to prevent furture traps. */
@@ -176,6 +176,7 @@ int intel_vgpu_page_track_handler(struct intel_vgpu *vgpu, u64 gpa,
			gvt_err("guest page write error, gpa %llx\n", gpa);
	}

out:
	mutex_unlock(&gvt->lock);
	return ret;
}