[PATCH] drm/i915/gvt: initialize dmabuf mutex in vgpu_create
Hang Yuan
hang.yuan at linux.intel.com
Tue Jul 31 05:41:54 UTC 2018
On 07/31/2018 10:39 AM, Zhenyu Wang wrote:
> On 2018.07.30 10:52:53 +0800, intel-gvt-dev-bounces at lists.freedesktop.org wrote:
>> From: Hang Yuan <hang.yuan at linux.intel.com>
>>
>> Currently, the mutex used in GVT dmabuf support is not initialized until
>> vgpu device is opened. If one vgpu device is opened and then removed, the
>> mutex will be used in vgpu remove operation without initialization. This
>> patch initializes the mutex in vgpu create operation to avoid the problem.
>>
>
> Good catch! Looks fine to me. Pls still think about adding stable kernel in cc
> for this kind of fixes, definitely fit for stable kernel with proper version.
>
> Reviewed-by: Zhenyu Wang <zhenyuw at linux.intel.com>
>
> thanks!
The bug doesn't cause any oops or other critical issues, even no any
warning message in latest gvt branch kernel. So I didn't copy stable kernel.
Thanks,
Henry
>> Fixes: e546e281d33d("drm/i915/gvt: Dmabuf support for GVT-g")
>> Signed-off-by: Hang Yuan <hang.yuan at linux.intel.com>
>> ---
>> drivers/gpu/drm/i915/gvt/kvmgt.c | 1 -
>> drivers/gpu/drm/i915/gvt/vgpu.c | 1 +
>> 2 files changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c
>> index a22d539..cbdf915e 100644
>> --- a/drivers/gpu/drm/i915/gvt/kvmgt.c
>> +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
>> @@ -1615,7 +1615,6 @@ static int kvmgt_guest_init(struct mdev_device *mdev)
>> kvmgt_protect_table_init(info);
>> gvt_cache_init(vgpu);
>>
>> - mutex_init(&vgpu->dmabuf_lock);
>> init_completion(&vgpu->vblank_done);
>>
>> info->track_node.track_write = kvmgt_page_track_write;
>> diff --git a/drivers/gpu/drm/i915/gvt/vgpu.c b/drivers/gpu/drm/i915/gvt/vgpu.c
>> index f6fa916..0bc1f1e 100644
>> --- a/drivers/gpu/drm/i915/gvt/vgpu.c
>> +++ b/drivers/gpu/drm/i915/gvt/vgpu.c
>> @@ -361,6 +361,7 @@ static struct intel_vgpu *__intel_gvt_create_vgpu(struct intel_gvt *gvt,
>> vgpu->gvt = gvt;
>> vgpu->sched_ctl.weight = param->weight;
>> mutex_init(&vgpu->vgpu_lock);
>> + mutex_init(&vgpu->dmabuf_lock);
>> INIT_LIST_HEAD(&vgpu->dmabuf_obj_list_head);
>> INIT_RADIX_TREE(&vgpu->page_track_tree, GFP_KERNEL);
>> idr_init(&vgpu->object_idr);
>> --
>> 2.7.4
>>
>> _______________________________________________
>> intel-gvt-dev mailing list
>> intel-gvt-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev
More information about the intel-gvt-dev
mailing list