drm/i915: Unlock mutex on i915_gem_fault() error path
If we failed to allocate a new fence register we would return VM_FAULT_SIGBUS without relinquishing the lock. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@linux.ie>
This commit is contained in:
parent
122ee2a63b
commit
7d8d58b23f
1 changed files with 3 additions and 1 deletions
|
@ -588,8 +588,10 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||||
if (obj_priv->fence_reg == I915_FENCE_REG_NONE &&
|
if (obj_priv->fence_reg == I915_FENCE_REG_NONE &&
|
||||||
obj_priv->tiling_mode != I915_TILING_NONE) {
|
obj_priv->tiling_mode != I915_TILING_NONE) {
|
||||||
ret = i915_gem_object_get_fence_reg(obj, write);
|
ret = i915_gem_object_get_fence_reg(obj, write);
|
||||||
if (ret != 0)
|
if (ret) {
|
||||||
|
mutex_unlock(&dev->struct_mutex);
|
||||||
return VM_FAULT_SIGBUS;
|
return VM_FAULT_SIGBUS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pfn = ((dev->agp->base + obj_priv->gtt_offset) >> PAGE_SHIFT) +
|
pfn = ((dev->agp->base + obj_priv->gtt_offset) >> PAGE_SHIFT) +
|
||||||
|
|
Reference in a new issue