Re: [PATCH] drm/i915/gvt: fix deadlock in dispatch_workload()'s error path
On 2016.12.04 23:57:18 +, Eric Engestrom wrote: > 90d27a1 moved the lock before this error path but forgot to add an > unlock here. > > Fixes: 90d27a1b180e51ef0713 ("drm/i915/gvt: fix deadlock in workload_thread") > Cc: Pei Zhang> Cc: Zhenyu Wang > Signed-off-by: Eric Engestrom > --- Hi, this has been fixed on https://cgit.freedesktop.org/drm/drm-intel/commit/?h=drm-intel-next-fixes=53d6f812c0dbf1c9cad89b1c2118e61c13ca9677 Thanks! > drivers/gpu/drm/i915/gvt/scheduler.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c > b/drivers/gpu/drm/i915/gvt/scheduler.c > index f898df3..cd13c4b 100644 > --- a/drivers/gpu/drm/i915/gvt/scheduler.c > +++ b/drivers/gpu/drm/i915/gvt/scheduler.c > @@ -177,6 +177,7 @@ static int dispatch_workload(struct intel_vgpu_workload > *workload) > rq = i915_gem_request_alloc(dev_priv->engine[ring_id], shadow_ctx); > if (IS_ERR(rq)) { > gvt_err("fail to allocate gem request\n"); > + mutex_unlock(_priv->drm.struct_mutex); > workload->status = PTR_ERR(rq); > return workload->status; > } > -- > Cheers, > Eric > -- Open Source Technology Center, Intel ltd. $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827 signature.asc Description: PGP signature
Re: [PATCH] drm/i915/gvt: fix deadlock in dispatch_workload()'s error path
On 2016.12.04 23:57:18 +, Eric Engestrom wrote: > 90d27a1 moved the lock before this error path but forgot to add an > unlock here. > > Fixes: 90d27a1b180e51ef0713 ("drm/i915/gvt: fix deadlock in workload_thread") > Cc: Pei Zhang > Cc: Zhenyu Wang > Signed-off-by: Eric Engestrom > --- Hi, this has been fixed on https://cgit.freedesktop.org/drm/drm-intel/commit/?h=drm-intel-next-fixes=53d6f812c0dbf1c9cad89b1c2118e61c13ca9677 Thanks! > drivers/gpu/drm/i915/gvt/scheduler.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c > b/drivers/gpu/drm/i915/gvt/scheduler.c > index f898df3..cd13c4b 100644 > --- a/drivers/gpu/drm/i915/gvt/scheduler.c > +++ b/drivers/gpu/drm/i915/gvt/scheduler.c > @@ -177,6 +177,7 @@ static int dispatch_workload(struct intel_vgpu_workload > *workload) > rq = i915_gem_request_alloc(dev_priv->engine[ring_id], shadow_ctx); > if (IS_ERR(rq)) { > gvt_err("fail to allocate gem request\n"); > + mutex_unlock(_priv->drm.struct_mutex); > workload->status = PTR_ERR(rq); > return workload->status; > } > -- > Cheers, > Eric > -- Open Source Technology Center, Intel ltd. $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827 signature.asc Description: PGP signature
[PATCH] drm/i915/gvt: fix deadlock in dispatch_workload()'s error path
90d27a1 moved the lock before this error path but forgot to add an unlock here. Fixes: 90d27a1b180e51ef0713 ("drm/i915/gvt: fix deadlock in workload_thread") Cc: Pei ZhangCc: Zhenyu Wang Signed-off-by: Eric Engestrom --- drivers/gpu/drm/i915/gvt/scheduler.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c index f898df3..cd13c4b 100644 --- a/drivers/gpu/drm/i915/gvt/scheduler.c +++ b/drivers/gpu/drm/i915/gvt/scheduler.c @@ -177,6 +177,7 @@ static int dispatch_workload(struct intel_vgpu_workload *workload) rq = i915_gem_request_alloc(dev_priv->engine[ring_id], shadow_ctx); if (IS_ERR(rq)) { gvt_err("fail to allocate gem request\n"); + mutex_unlock(_priv->drm.struct_mutex); workload->status = PTR_ERR(rq); return workload->status; } -- Cheers, Eric
[PATCH] drm/i915/gvt: fix deadlock in dispatch_workload()'s error path
90d27a1 moved the lock before this error path but forgot to add an unlock here. Fixes: 90d27a1b180e51ef0713 ("drm/i915/gvt: fix deadlock in workload_thread") Cc: Pei Zhang Cc: Zhenyu Wang Signed-off-by: Eric Engestrom --- drivers/gpu/drm/i915/gvt/scheduler.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c index f898df3..cd13c4b 100644 --- a/drivers/gpu/drm/i915/gvt/scheduler.c +++ b/drivers/gpu/drm/i915/gvt/scheduler.c @@ -177,6 +177,7 @@ static int dispatch_workload(struct intel_vgpu_workload *workload) rq = i915_gem_request_alloc(dev_priv->engine[ring_id], shadow_ctx); if (IS_ERR(rq)) { gvt_err("fail to allocate gem request\n"); + mutex_unlock(_priv->drm.struct_mutex); workload->status = PTR_ERR(rq); return workload->status; } -- Cheers, Eric