diff options
author | kib <kib@FreeBSD.org> | 2014-05-06 12:31:25 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2014-05-06 12:31:25 +0000 |
commit | f5b893b0e83e26a9af9210ae8aeb364d6b9367e7 (patch) | |
tree | 9a7bf03288621e18b5f605d12edb292821144af2 | |
parent | 68fab2508087e21af8f980acb74995c49794a872 (diff) | |
download | FreeBSD-src-f5b893b0e83e26a9af9210ae8aeb364d6b9367e7.zip FreeBSD-src-f5b893b0e83e26a9af9210ae8aeb364d6b9367e7.tar.gz |
MFC r265102:
Fix two cases of recursive acquisitions of the vm object lock, only
possible in rare failure situations.
-rw-r--r-- | sys/dev/drm2/i915/i915_gem.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/drm2/i915/i915_gem.c b/sys/dev/drm2/i915/i915_gem.c index 9af50d8..99821e4 100644 --- a/sys/dev/drm2/i915/i915_gem.c +++ b/sys/dev/drm2/i915/i915_gem.c @@ -1431,6 +1431,7 @@ retry: m = vm_phys_fictitious_to_vm_page(dev->agp->base + obj->gtt_offset + offset); if (m == NULL) { + VM_OBJECT_WUNLOCK(vm_obj); cause = 60; ret = -EFAULT; goto unlock; @@ -1450,7 +1451,6 @@ retry: DRM_UNLOCK(dev); VM_OBJECT_WUNLOCK(vm_obj); VM_WAIT; - VM_OBJECT_WLOCK(vm_obj); goto retry; } m->valid = VM_PAGE_BITS_ALL; |