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

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/os/sid.c
          +++ new/usr/src/uts/common/os/sid.c
↓ open down ↓ 71 lines elided ↑ open up ↑
  72   72  void
  73   73  ksid_rele(ksid_t *ks)
  74   74  {
  75   75          if (ks->ks_domain != NULL)
  76   76                  ksiddomain_rele(ks->ks_domain);
  77   77  }
  78   78  
  79   79  void
  80   80  ksiddomain_hold(ksiddomain_t *kd)
  81   81  {
  82      -        atomic_add_32(&kd->kd_ref, 1);
       82 +        atomic_inc_32(&kd->kd_ref);
  83   83  }
  84   84  
  85   85  void
  86   86  ksiddomain_rele(ksiddomain_t *kd)
  87   87  {
  88      -        if (atomic_add_32_nv(&kd->kd_ref, -1) == 0) {
       88 +        if (atomic_dec_32_nv(&kd->kd_ref) == 0) {
  89   89                  /*
  90   90                   * The kd reference can only be incremented from 0 when
  91   91                   * the sid_lock is held; so we lock and then check need to
  92   92                   * check for 0 again.
  93   93                   */
  94   94                  mutex_enter(&sid_lock);
  95   95                  if (kd->kd_ref == 0) {
  96   96                          avl_remove(&sid_tree, kd);
  97   97                          kmem_free(kd->kd_name, kd->kd_len);
  98   98                          kmem_free(kd, sizeof (*kd));
  99   99                  }
 100  100                  mutex_exit(&sid_lock);
 101  101          }
 102  102  }
 103  103  
 104  104  void
 105  105  ksidlist_hold(ksidlist_t *ksl)
 106  106  {
 107      -        atomic_add_32(&ksl->ksl_ref, 1);
      107 +        atomic_inc_32(&ksl->ksl_ref);
 108  108  }
 109  109  
 110  110  void
 111  111  ksidlist_rele(ksidlist_t *ksl)
 112  112  {
 113      -        if (atomic_add_32_nv(&ksl->ksl_ref, -1) == 0) {
      113 +        if (atomic_dec_32_nv(&ksl->ksl_ref) == 0) {
 114  114                  int i;
 115  115  
 116  116                  for (i = 0; i < ksl->ksl_nsid; i++)
 117  117                          ksid_rele(&ksl->ksl_sids[i]);
 118  118  
 119  119                  kmem_free(ksl, KSIDLIST_MEM(ksl->ksl_nsid));
 120  120          }
 121  121  }
 122  122  
 123  123  static int
↓ open down ↓ 130 lines elided ↑ open up ↑
 254  254          if (new->kr_sidlist != NULL)
 255  255                  ksidlist_hold(new->kr_sidlist);
 256  256  
 257  257          kcrsid_rele(org);
 258  258          return (new);
 259  259  }
 260  260  
 261  261  void
 262  262  kcrsid_hold(credsid_t *kcr)
 263  263  {
 264      -        atomic_add_32(&kcr->kr_ref, 1);
      264 +        atomic_inc_32(&kcr->kr_ref);
 265  265  }
 266  266  
 267  267  void
 268  268  kcrsid_rele(credsid_t *kcr)
 269  269  {
 270      -        if (atomic_add_32_nv(&kcr->kr_ref, -1) == 0) {
      270 +        if (atomic_dec_32_nv(&kcr->kr_ref) == 0) {
 271  271                  ksid_index_t i;
 272  272  
 273  273                  for (i = 0; i < KSID_COUNT; i++)
 274  274                          ksid_rele(&kcr->kr_sidx[i]);
 275  275  
 276  276                  if (kcr->kr_sidlist != NULL)
 277  277                          ksidlist_rele(kcr->kr_sidlist);
 278  278  
 279  279                  kmem_free(kcr, sizeof (*kcr));
 280  280          }
↓ open down ↓ 138 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX