Print this page
patch as-lock-macro-simplification

@@ -960,13 +960,13 @@
 
                 if ((p->p_flag & SSYS) || as == &kas)
                         n = 0;
                 else {
                         mutex_exit(&p->p_lock);
-                        AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
+                        AS_LOCK_ENTER(as, RW_WRITER);
                         n = prnsegs(as, 0);
-                        AS_LOCK_EXIT(as, &as->a_lock);
+                        AS_LOCK_EXIT(as);
                         mutex_enter(&p->p_lock);
                 }
                 prunlock(pnp);
                 if (copyout(&n, cmaddr, sizeof (int)))
                         error = EFAULT;

@@ -981,13 +981,13 @@
                 if ((p->p_flag & SSYS) || as == &kas) {
                         error = 0;
                         prunlock(pnp);
                 } else {
                         mutex_exit(&p->p_lock);
-                        AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
+                        AS_LOCK_ENTER(as, RW_WRITER);
                         error = oprgetmap(p, &iolhead);
-                        AS_LOCK_EXIT(as, &as->a_lock);
+                        AS_LOCK_EXIT(as);
                         mutex_enter(&p->p_lock);
                         prunlock(pnp);
 
                         error = pr_iol_copyout_and_free(&iolhead,
                             &cmaddr, error);

@@ -1655,15 +1655,15 @@
                         psp->pr_size = 0;
                         psp->pr_rssize = 0;
                         psp->pr_pctmem = 0;
                 } else {
                         mutex_exit(&p->p_lock);
-                        AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+                        AS_LOCK_ENTER(as, RW_READER);
                         psp->pr_size = (size32_t)btopr(as->a_resvsize);
                         psp->pr_rssize = (size32_t)rm_asrss(as);
                         psp->pr_pctmem = rm_pctmemory(as);
-                        AS_LOCK_EXIT(as, &as->a_lock);
+                        AS_LOCK_EXIT(as);
                         mutex_enter(&p->p_lock);
                 }
         }
         psp->pr_bysize = (size32_t)ptob(psp->pr_size);
         psp->pr_byrssize = (size32_t)ptob(psp->pr_rssize);

@@ -2587,13 +2587,13 @@
 
                 if ((p->p_flag & SSYS) || as == &kas)
                         n = 0;
                 else {
                         mutex_exit(&p->p_lock);
-                        AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
+                        AS_LOCK_ENTER(as, RW_WRITER);
                         n = prnsegs(as, 0);
-                        AS_LOCK_EXIT(as, &as->a_lock);
+                        AS_LOCK_EXIT(as);
                         mutex_enter(&p->p_lock);
                 }
                 prunlock(pnp);
                 if (copyout(&n, cmaddr, sizeof (int)))
                         error = EFAULT;

@@ -2611,13 +2611,13 @@
                 } else if (PROCESS_NOT_32BIT(p)) {
                         error = EOVERFLOW;
                         prunlock(pnp);
                 } else {
                         mutex_exit(&p->p_lock);
-                        AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
+                        AS_LOCK_ENTER(as, RW_WRITER);
                         error = oprgetmap32(p, &iolhead);
-                        AS_LOCK_EXIT(as, &as->a_lock);
+                        AS_LOCK_EXIT(as);
                         mutex_enter(&p->p_lock);
                         prunlock(pnp);
 
                         error = pr_iol_copyout_and_free(&iolhead,
                             &cmaddr, error);

@@ -3140,22 +3140,22 @@
                  * the clock thread.  The process will not
                  * disappear and its address space will not
                  * change because it is marked P_PR_LOCK.
                  */
                 mutex_exit(&p->p_lock);
-                AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+                AS_LOCK_ENTER(as, RW_READER);
                 seg = as_segat(as, va);
                 if (seg != NULL &&
                     seg->s_ops == &segvn_ops &&
                     SEGOP_GETVP(seg, va, &xvp) == 0 &&
                     xvp != NULL &&
                     xvp->v_type == VREG) {
                         VN_HOLD(xvp);
                 } else {
                         error = EINVAL;
                 }
-                AS_LOCK_EXIT(as, &as->a_lock);
+                AS_LOCK_EXIT(as);
                 mutex_enter(&p->p_lock);
         } else if ((xvp = p->p_exec) == NULL) {
                 error = EINVAL;
         } else {
                 VN_HOLD(xvp);

@@ -3494,15 +3494,15 @@
                         psp->pr_size = 0;
                         psp->pr_rssize = 0;
                         psp->pr_pctmem = 0;
                 } else {
                         mutex_exit(&p->p_lock);
-                        AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+                        AS_LOCK_ENTER(as, RW_READER);
                         psp->pr_size = btopr(as->a_resvsize);
                         psp->pr_rssize = rm_asrss(as);
                         psp->pr_pctmem = rm_pctmemory(as);
-                        AS_LOCK_EXIT(as, &as->a_lock);
+                        AS_LOCK_EXIT(as);
                         mutex_enter(&p->p_lock);
                 }
         }
         psp->pr_bysize = ptob(psp->pr_size);
         psp->pr_byrssize = ptob(psp->pr_rssize);

@@ -3521,11 +3521,11 @@
         prmap_t *mp;
         struct seg *seg;
         struct seg *brkseg, *stkseg;
         uint_t prot;
 
-        ASSERT(as != &kas && AS_WRITE_HELD(as, &as->a_lock));
+        ASSERT(as != &kas && AS_WRITE_HELD(as));
 
         /*
          * Request an initial buffer size that doesn't waste memory
          * if the address space has only a small number of segments.
          */

@@ -3581,11 +3581,11 @@
         ioc_prmap32_t *mp;
         struct seg *seg;
         struct seg *brkseg, *stkseg;
         uint_t prot;
 
-        ASSERT(as != &kas && AS_WRITE_HELD(as, &as->a_lock));
+        ASSERT(as != &kas && AS_WRITE_HELD(as));
 
         /*
          * Request an initial buffer size that doesn't waste memory
          * if the address space has only a small number of segments.
          */

@@ -3641,11 +3641,11 @@
 oprpdsize(struct as *as)
 {
         struct seg *seg;
         size_t size;
 
-        ASSERT(as != &kas && AS_WRITE_HELD(as, &as->a_lock));
+        ASSERT(as != &kas && AS_WRITE_HELD(as));
 
         if ((seg = AS_SEGFIRST(as)) == NULL)
                 return (0);
 
         size = sizeof (prpageheader_t);

@@ -3671,11 +3671,11 @@
 oprpdsize32(struct as *as)
 {
         struct seg *seg;
         size_t size;
 
-        ASSERT(as != &kas && AS_WRITE_HELD(as, &as->a_lock));
+        ASSERT(as != &kas && AS_WRITE_HELD(as));
 
         if ((seg = AS_SEGFIRST(as)) == NULL)
                 return (0);
 
         size = sizeof (ioc_prpageheader32_t);

@@ -3709,19 +3709,19 @@
         prasmap_t *pmp;
         struct seg *seg;
         int error;
 
 again:
-        AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
+        AS_LOCK_ENTER(as, RW_WRITER);
 
         if ((seg = AS_SEGFIRST(as)) == NULL) {
-                AS_LOCK_EXIT(as, &as->a_lock);
+                AS_LOCK_EXIT(as);
                 return (0);
         }
         size = oprpdsize(as);
         if (uiop->uio_resid < size) {
-                AS_LOCK_EXIT(as, &as->a_lock);
+                AS_LOCK_EXIT(as);
                 return (E2BIG);
         }
 
         buf = kmem_zalloc(size, KM_SLEEP);
         php = (prpageheader_t *)buf;

@@ -3763,11 +3763,11 @@
                          * EINTR so that this thread can be dislodged if
                          * a latent bug causes us to spin indefinitely.
                          */
                         if (next > (uintptr_t)buf + size) {
                                 pr_getprot_done(&tmp);
-                                AS_LOCK_EXIT(as, &as->a_lock);
+                                AS_LOCK_EXIT(as);
 
                                 kmem_free(buf, size);
 
                                 if (ISSIG(curthread, JUSTLOOKING))
                                         return (EINTR);

@@ -3795,11 +3795,11 @@
                         pmp = (prasmap_t *)next;
                 }
                 ASSERT(tmp == NULL);
         } while ((seg = AS_SEGNEXT(as, seg)) != NULL);
 
-        AS_LOCK_EXIT(as, &as->a_lock);
+        AS_LOCK_EXIT(as);
 
         ASSERT((uintptr_t)pmp <= (uintptr_t)buf + size);
         error = uiomove(buf, (caddr_t)pmp - buf, UIO_READ, uiop);
         kmem_free(buf, size);
 

@@ -3816,19 +3816,19 @@
         ioc_prasmap32_t *pmp;
         struct seg *seg;
         int error;
 
 again:
-        AS_LOCK_ENTER(as, &as->a_lock, RW_WRITER);
+        AS_LOCK_ENTER(as, RW_WRITER);
 
         if ((seg = AS_SEGFIRST(as)) == NULL) {
-                AS_LOCK_EXIT(as, &as->a_lock);
+                AS_LOCK_EXIT(as);
                 return (0);
         }
         size = oprpdsize32(as);
         if (uiop->uio_resid < size) {
-                AS_LOCK_EXIT(as, &as->a_lock);
+                AS_LOCK_EXIT(as);
                 return (E2BIG);
         }
 
         buf = kmem_zalloc(size, KM_SLEEP);
         php = (ioc_prpageheader32_t *)buf;

@@ -3870,11 +3870,11 @@
                          * EINTR so that this thread can be dislodged if
                          * a latent bug causes us to spin indefinitely.
                          */
                         if (next > (uintptr_t)buf + size) {
                                 pr_getprot_done(&tmp);
-                                AS_LOCK_EXIT(as, &as->a_lock);
+                                AS_LOCK_EXIT(as);
 
                                 kmem_free(buf, size);
 
                                 if (ISSIG(curthread, JUSTLOOKING))
                                         return (EINTR);

@@ -3902,11 +3902,11 @@
                         pmp = (ioc_prasmap32_t *)next;
                 }
                 ASSERT(tmp == NULL);
         } while ((seg = AS_SEGNEXT(as, seg)) != NULL);
 
-        AS_LOCK_EXIT(as, &as->a_lock);
+        AS_LOCK_EXIT(as);
 
         ASSERT((uintptr_t)pmp == (uintptr_t)buf + size);
         error = uiomove(buf, (caddr_t)pmp - buf, UIO_READ, uiop);
         kmem_free(buf, size);