Fix two cases of recursive acquisitions of the vm object lock, only

possible in rare failure situations.

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
This commit is contained in:
kib 2014-04-29 19:02:34 +00:00
parent 9c85092013
commit 191551c687

View File

@ -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;