|
Petr Tesarik |
d97c8f |
From: Hang Yuan <hang.yuan@linux.intel.com>
|
|
Petr Tesarik |
d97c8f |
Date: Mon, 30 Jul 2018 10:52:53 +0800
|
|
Petr Tesarik |
d97c8f |
Subject: drm/i915/gvt: initialize dmabuf mutex in vgpu_create
|
|
Petr Tesarik |
d97c8f |
Git-commit: d6c6113bfe19af514128163a6d176437d45b7325
|
|
Petr Tesarik |
d97c8f |
Patch-mainline: v4.19-rc1
|
|
Petr Tesarik |
d97c8f |
References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166
|
|
Petr Tesarik |
d97c8f |
|
|
Petr Tesarik |
d97c8f |
Currently, the mutex used in GVT dmabuf support is not initialized until
|
|
Petr Tesarik |
d97c8f |
vgpu device is opened. If one vgpu device is opened and then removed, the
|
|
Petr Tesarik |
d97c8f |
mutex will be used in vgpu remove operation without initialization. This
|
|
Petr Tesarik |
d97c8f |
patch initializes the mutex in vgpu create operation to avoid the problem.
|
|
Petr Tesarik |
d97c8f |
|
|
Petr Tesarik |
d97c8f |
Fixes: e546e281d33d("drm/i915/gvt: Dmabuf support for GVT-g")
|
|
Petr Tesarik |
d97c8f |
Signed-off-by: Hang Yuan <hang.yuan@linux.intel.com>
|
|
Petr Tesarik |
d97c8f |
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
|
|
Petr Tesarik |
d97c8f |
Acked-by: Petr Tesarik <ptesarik@suse.com>
|
|
Petr Tesarik |
d97c8f |
---
|
|
Petr Tesarik |
d97c8f |
drivers/gpu/drm/i915/gvt/kvmgt.c | 1 -
|
|
Petr Tesarik |
d97c8f |
drivers/gpu/drm/i915/gvt/vgpu.c | 1 +
|
|
Petr Tesarik |
d97c8f |
2 files changed, 1 insertion(+), 1 deletion(-)
|
|
Petr Tesarik |
d97c8f |
|
|
Petr Tesarik |
d97c8f |
--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
|
|
Petr Tesarik |
d97c8f |
+++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
|
|
Petr Tesarik |
d97c8f |
@@ -1615,7 +1615,6 @@ static int kvmgt_guest_init(struct mdev_
|
|
Petr Tesarik |
d97c8f |
kvmgt_protect_table_init(info);
|
|
Petr Tesarik |
d97c8f |
gvt_cache_init(vgpu);
|
|
Petr Tesarik |
d97c8f |
|
|
Petr Tesarik |
d97c8f |
- mutex_init(&vgpu->dmabuf_lock);
|
|
Petr Tesarik |
d97c8f |
init_completion(&vgpu->vblank_done);
|
|
Petr Tesarik |
d97c8f |
|
|
Petr Tesarik |
d97c8f |
info->track_node.track_write = kvmgt_page_track_write;
|
|
Petr Tesarik |
d97c8f |
--- a/drivers/gpu/drm/i915/gvt/vgpu.c
|
|
Petr Tesarik |
d97c8f |
+++ b/drivers/gpu/drm/i915/gvt/vgpu.c
|
|
Petr Tesarik |
d97c8f |
@@ -379,6 +379,7 @@ static struct intel_vgpu *__intel_gvt_cr
|
|
Petr Tesarik |
d97c8f |
vgpu->gvt = gvt;
|
|
Petr Tesarik |
d97c8f |
vgpu->sched_ctl.weight = param->weight;
|
|
Petr Tesarik |
d97c8f |
mutex_init(&vgpu->vgpu_lock);
|
|
Petr Tesarik |
d97c8f |
+ mutex_init(&vgpu->dmabuf_lock);
|
|
Petr Tesarik |
d97c8f |
INIT_LIST_HEAD(&vgpu->dmabuf_obj_list_head);
|
|
Petr Tesarik |
d97c8f |
INIT_RADIX_TREE(&vgpu->page_track_tree, GFP_KERNEL);
|
|
Petr Tesarik |
d97c8f |
idr_init(&vgpu->object_idr);
|