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