svn commit: r252095 - user/attilio/vmobj-readlock/sys/dev/drm2/i915
Attilio Rao
attilio at FreeBSD.org
Sat Jun 22 12:50:05 UTC 2013
Author: attilio
Date: Sat Jun 22 12:50:05 2013
New Revision: 252095
URL: http://svnweb.freebsd.org/changeset/base/252095
Log:
- Remove an unuseful goto label
- Fix locking for busy
Sponsored by: EMC / Isilon storage division
Modified:
user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c
Modified: user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c
==============================================================================
--- user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c Sat Jun 22 05:32:45 2013 (r252094)
+++ user/attilio/vmobj-readlock/sys/dev/drm2/i915/i915_gem.c Sat Jun 22 12:50:05 2013 (r252095)
@@ -1356,9 +1356,8 @@ i915_gem_pager_fault(vm_object_t vm_obj,
*mres = NULL;
} else
oldm = NULL;
-retry:
VM_OBJECT_WUNLOCK(vm_obj);
-unlocked_vmobj:
+retry:
cause = ret = 0;
m = NULL;
@@ -1381,6 +1380,8 @@ unlocked_vmobj:
if (m != NULL) {
if ((m->flags & VPO_BUSY) != 0) {
DRM_UNLOCK(dev);
+ vm_page_lock(m);
+ VM_OBJECT_WUNLOCK(vm_obj);
vm_page_sleep(m, "915pee");
goto retry;
}
@@ -1440,7 +1441,6 @@ unlocked_vmobj:
vm_page_lock(m);
VM_OBJECT_WUNLOCK(vm_obj);
vm_page_sleep(m, "915pbs");
- VM_OBJECT_WLOCK(vm_obj);
goto retry;
}
m->valid = VM_PAGE_BITS_ALL;
@@ -1468,7 +1468,7 @@ out:
-ret, cause);
if (ret == -EAGAIN || ret == -EIO || ret == -EINTR) {
kern_yield(PRI_USER);
- goto unlocked_vmobj;
+ goto retry;
}
VM_OBJECT_WLOCK(vm_obj);
vm_object_pip_wakeup(vm_obj);
More information about the svn-src-user
mailing list