Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/nca/nca.h
          +++ new/usr/src/uts/common/inet/nca/nca.h
↓ open down ↓ 951 lines elided ↑ open up ↑
 952  952                   * case not in the fast-path we'll just take the hit    \
 953  953                   * of a needless readers enter/exit.                    \
 954  954                   */                                                     \
 955  955                  mutex_exit(&nca_dcb_readers);                           \
 956  956          }                                                               \
 957  957  }
 958  958  
 959  959  #define DCB_RD_EXIT(cpu) {                                              \
 960  960          uint32_t *rp = &nca_gv[cpu].dcb_readers;                        \
 961  961                                                                          \
 962      -        if (atomic_add_32_nv(rp, -1) == DCB_COUNT_USELOCK) {            \
      962 +        if (atomic_dec_32_nv(rp) == DCB_COUNT_USELOCK) {                \
 963  963                  mutex_enter(&nca_dcb_lock);                             \
 964  964                  if (CV_HAS_WAITERS(&nca_dcb_wait)) {                    \
 965  965                          /* May be the last reader for this CPU */       \
 966  966                          cv_signal(&nca_dcb_wait);                       \
 967  967                  }                                                       \
 968  968                  mutex_exit(&nca_dcb_lock);                              \
 969  969          }                                                               \
 970  970  }
 971  971  
 972  972  #define DCB_WR_ENTER() {                                                \
↓ open down ↓ 1175 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX