Print this page
patch as-lock-macro-simplification

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/syscall/rlimit.c
          +++ new/usr/src/uts/common/syscall/rlimit.c
↓ open down ↓ 133 lines elided ↑ open up ↑
 134  134                  brkbase = (caddr_t)p->p_brkbase;
 135  135                  brkend = (caddr_t)p->p_brkbase + p->p_brksize;
 136  136                  mutex_exit(&p->p_lock);
 137  137  
 138  138                  /*
 139  139                   * Since we can't return less than the current break,
 140  140                   * initialize the return value to the current break
 141  141                   */
 142  142                  retval = (long)brkend;
 143  143  
 144      -                AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
      144 +                AS_LOCK_ENTER(as, RW_READER);
 145  145                  for (seg = as_findseg(as, brkend, 0); seg != NULL;
 146  146                      seg = AS_SEGNEXT(as, seg)) {
 147  147                          if (seg->s_base >= brkend) {
 148  148                                  nextseg = seg;
 149  149                                  break;
 150  150                          }
 151  151                  }
 152  152  
 153  153                  mutex_enter(&p->p_lock);
 154  154                  size_ctl = rctl_enforced_value(rctlproc_legacy[RLIMIT_DATA],
↓ open down ↓ 50 lines elided ↑ open up ↑
 205  205                          else
 206  206                                  size = 0;
 207  207                          /*
 208  208                           * Take care to not overflow the calculation
 209  209                           */
 210  210                          if (as->a_userlimit - brkendpg > size)
 211  211                                  retval = MIN((size_t)retval,
 212  212                                      (size_t)(brkendpg + size));
 213  213                  }
 214  214  
 215      -                AS_LOCK_EXIT(as, &as->a_lock);
      215 +                AS_LOCK_EXIT(as);
 216  216  
 217  217                  /* truncate to same boundary as sbrk */
 218  218  
 219  219                  switch (get_udatamodel()) {
 220  220                  default:
 221  221                  case DATAMODEL_ILP32:
 222  222                          retval = retval & ~(8-1);
 223  223                          break;
 224  224                  case DATAMODEL_LP64:
 225  225                          retval = retval & ~(16-1);
↓ open down ↓ 262 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX