From: Wei Yongjun yongjun_wei@trendmicro.com.cn
Add the missing unlock before return from function i915_gem_init_hw() in the error handling case.
Signed-off-by: Wei Yongjun yongjun_wei@trendmicro.com.cn --- drivers/gpu/drm/i915/i915_gem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index d2ba315..3eeb2d0 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4879,8 +4879,10 @@ i915_gem_init_hw(struct drm_device *dev) i915_gem_init_swizzling(dev);
ret = dev_priv->gt.init_rings(dev); - if (ret) + if (ret) { + mutex_unlock(&dev->struct_mutex); return ret; + }
for (i = 0; i < NUM_L3_SLICES(dev); i++) i915_gem_l3_remap(&dev_priv->ring[RCS], i);
On Fri, Dec 05, 2014 at 08:55:59AM +0800, weiyj_lk@163.com wrote:
From: Wei Yongjun yongjun_wei@trendmicro.com.cn
Add the missing unlock before return from function i915_gem_init_hw() in the error handling case.
Signed-off-by: Wei Yongjun yongjun_wei@trendmicro.com.cn
Applied, thanks for the patch. Two minor comments: - Please mention the commit that introduced the issue next time around. I've added that while applying.
- The usual patter is
if (ret) goto out;
/* more code */
out: mutex_unlock(); return ret;
This would work really well in i915_gem_init_hw and besides the code-cleanup also prevents such a fumble in the future. If you feel like please submit that patch to convert init_hw to this shared unlock code pattern, too.
Thanks, Daniel
drivers/gpu/drm/i915/i915_gem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index d2ba315..3eeb2d0 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4879,8 +4879,10 @@ i915_gem_init_hw(struct drm_device *dev) i915_gem_init_swizzling(dev);
ret = dev_priv->gt.init_rings(dev);
- if (ret)
if (ret) {
mutex_unlock(&dev->struct_mutex);
return ret;
}
for (i = 0; i < NUM_L3_SLICES(dev); i++) i915_gem_l3_remap(&dev_priv->ring[RCS], i);
Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx
dri-devel@lists.freedesktop.org