Print this page
patch as-lock-macro-simplification
@@ -200,15 +200,15 @@
/*
* Locate segment containing address of interest.
*/
page = (caddr_t)(uintptr_t)((uintptr_t)addr & PAGEMASK);
retrycnt = 0;
- AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
+ AS_LOCK_ENTER(as, RW_WRITER);
retry:
if ((seg = as_segat(as, page)) == NULL ||
!page_valid(seg, page)) {
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (ENXIO);
}
SEGOP_GETPROT(seg, page, 0, &prot);
protchanged = 0;
@@ -222,11 +222,11 @@
retrycnt++;
goto retry;
}
if (err != 0) {
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (ENXIO);
}
}
/*
@@ -245,11 +245,11 @@
rw = S_READ;
if (SEGOP_FAULT(as->a_hat, seg, page, PAGESIZE, F_SOFTLOCK, rw)) {
if (protchanged)
(void) SEGOP_SETPROT(seg, page, PAGESIZE, prot);
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (ENXIO);
}
CPU_STATS_ADD_K(vm, softlock, 1);
/*
@@ -306,11 +306,11 @@
(void) SEGOP_FAULT(as->a_hat, seg, page, PAGESIZE, F_SOFTUNLOCK, rw);
if (protchanged)
(void) SEGOP_SETPROT(seg, page, PAGESIZE, prot);
- AS_LOCK_EXIT(as, &as->a_lock);
+ AS_LOCK_EXIT(as);
return (error);
}
int