Print this page
patch fix-bad-code
patch as-lock-macro-simplification

@@ -5607,11 +5607,11 @@
         struct as *as = pp->p_as;
         vnode_t *vp;
         int allow = 1;
 
         ASSERT(pp->p_as != &kas);
-        AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
+        AS_LOCK_ENTER(as, RW_READER);
         for (seg = AS_SEGFIRST(as); seg != NULL; seg = AS_SEGNEXT(as, seg)) {
 
                 /*
                  * Cannot enter zone with shared anon memory which
                  * reserves swap.  See comment above.

@@ -5630,11 +5630,11 @@
                 if (!vn_can_change_zones(vp)) { /* bail on first match */
                         allow = 0;
                         break;
                 }
         }
-        AS_LOCK_EXIT(as, &as->a_lock);
+        AS_LOCK_EXIT(as);
         return (allow);
 }
 
 /*
  * Count swap reserved by curproc's address space

@@ -5646,11 +5646,11 @@
         struct seg *seg;
         struct as *as = pp->p_as;
         size_t swap = 0;
 
         ASSERT(pp->p_as != &kas);
-        ASSERT(AS_WRITE_HELD(as, &as->a_lock));
+        ASSERT(AS_WRITE_HELD(as));
         for (seg = AS_SEGFIRST(as); seg != NULL; seg = AS_SEGNEXT(as, seg))
                 swap += seg_swresv(seg);
 
         return (swap);
 }

@@ -5851,11 +5851,11 @@
          * reservation from the global zone to the non global zone because
          * asynchronous faults on the processes' address space can lock
          * memory and reserve swap via MCL_FUTURE and MAP_NORESERVE
          * segments respectively.
          */
-        AS_LOCK_ENTER(pp->as, &pp->p_as->a_lock, RW_WRITER);
+        AS_LOCK_ENTER(pp->p_as, RW_WRITER);
         swap = as_swresv();
         mutex_enter(&pp->p_lock);
         zone_proj0 = zone->zone_zsched->p_task->tk_proj;
         /* verify that we do not exceed and task or lwp limits */
         mutex_enter(&zone->zone_nlwps_lock);

@@ -5898,11 +5898,11 @@
         mutex_exit(&(pp->p_task->tk_proj->kpj_data.kpd_crypto_lock));
 
         pp->p_flag |= SZONETOP;
         pp->p_zone = zone;
         mutex_exit(&pp->p_lock);
-        AS_LOCK_EXIT(pp->p_as, &pp->p_as->a_lock);
+        AS_LOCK_EXIT(pp->p_as);
 
         /*
          * Joining the zone cannot fail from now on.
          *
          * This means that a lot of the following code can be commonized and