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

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/ip/ip_dce.c
          +++ new/usr/src/uts/common/inet/ip/ip_dce.c
↓ open down ↓ 524 lines elided ↑ open up ↑
 525  525          dce->dce_last_change_time = TICK_TO_SEC(ddi_get_lbolt64());
 526  526          dce_refhold(dce);       /* For the hash list */
 527  527  
 528  528          /* Link into list */
 529  529          if (dcb->dcb_dce != NULL)
 530  530                  dcb->dcb_dce->dce_ptpn = &dce->dce_next;
 531  531          dce->dce_next = dcb->dcb_dce;
 532  532          dce->dce_ptpn = &dcb->dcb_dce;
 533  533          dcb->dcb_dce = dce;
 534  534          dce->dce_bucket = dcb;
 535      -        atomic_add_32(&dcb->dcb_cnt, 1);
      535 +        atomic_inc_32(&dcb->dcb_cnt);
 536  536          dce_refhold(dce);       /* For the caller */
 537  537          rw_exit(&dcb->dcb_lock);
 538  538  
 539  539          /* Initialize dce_ident to be different than for the last packet */
 540  540          dce->dce_ident = ipst->ips_dce_default->dce_ident + 1;
 541  541  
 542  542          dce_increment_generation(ipst->ips_dce_default);
 543  543          return (dce);
 544  544  }
 545  545  
↓ open down ↓ 51 lines elided ↑ open up ↑
 597  597          dce->dce_last_change_time = TICK_TO_SEC(ddi_get_lbolt64());
 598  598          dce_refhold(dce);       /* For the hash list */
 599  599  
 600  600          /* Link into list */
 601  601          if (dcb->dcb_dce != NULL)
 602  602                  dcb->dcb_dce->dce_ptpn = &dce->dce_next;
 603  603          dce->dce_next = dcb->dcb_dce;
 604  604          dce->dce_ptpn = &dcb->dcb_dce;
 605  605          dcb->dcb_dce = dce;
 606  606          dce->dce_bucket = dcb;
 607      -        atomic_add_32(&dcb->dcb_cnt, 1);
      607 +        atomic_inc_32(&dcb->dcb_cnt);
 608  608          dce_refhold(dce);       /* For the caller */
 609  609          rw_exit(&dcb->dcb_lock);
 610  610  
 611  611          /* Initialize dce_ident to be different than for the last packet */
 612  612          dce->dce_ident = ipst->ips_dce_default->dce_ident + 1;
 613  613          dce_increment_generation(ipst->ips_dce_default);
 614  614          return (dce);
 615  615  }
 616  616  
 617  617  /*
↓ open down ↓ 106 lines elided ↑ open up ↑
 724  724  static void
 725  725  dce_make_condemned(dce_t *dce)
 726  726  {
 727  727          ip_stack_t      *ipst = dce->dce_ipst;
 728  728  
 729  729          mutex_enter(&dce->dce_lock);
 730  730          ASSERT(!DCE_IS_CONDEMNED(dce));
 731  731          dce->dce_generation = DCE_GENERATION_CONDEMNED;
 732  732          mutex_exit(&dce->dce_lock);
 733  733          /* Count how many condemned dces for kmem_cache callback */
 734      -        atomic_add_32(&ipst->ips_num_dce_condemned, 1);
      734 +        atomic_inc_32(&ipst->ips_num_dce_condemned);
 735  735  }
 736  736  
 737  737  /*
 738  738   * Increment the generation avoiding the special condemned value
 739  739   */
 740  740  void
 741  741  dce_increment_generation(dce_t *dce)
 742  742  {
 743  743          uint_t generation;
 744  744  
↓ open down ↓ 41 lines elided ↑ open up ↑
 786  786   */
 787  787  static void
 788  788  dce_delete_locked(dcb_t *dcb, dce_t *dce)
 789  789  {
 790  790          dce->dce_bucket = NULL;
 791  791          *dce->dce_ptpn = dce->dce_next;
 792  792          if (dce->dce_next != NULL)
 793  793                  dce->dce_next->dce_ptpn = dce->dce_ptpn;
 794  794          dce->dce_ptpn = NULL;
 795  795          dce->dce_next = NULL;
 796      -        atomic_add_32(&dcb->dcb_cnt, -1);
      796 +        atomic_dec_32(&dcb->dcb_cnt);
 797  797          dce_make_condemned(dce);
 798  798  }
 799  799  
 800  800  static void
 801  801  dce_inactive(dce_t *dce)
 802  802  {
 803  803          ip_stack_t      *ipst = dce->dce_ipst;
 804  804  
 805  805          ASSERT(!(dce->dce_flags & DCEF_DEFAULT));
 806  806          ASSERT(dce->dce_ptpn == NULL);
 807  807          ASSERT(dce->dce_bucket == NULL);
 808  808  
 809  809          /* Count how many condemned dces for kmem_cache callback */
 810  810          if (DCE_IS_CONDEMNED(dce))
 811      -                atomic_add_32(&ipst->ips_num_dce_condemned, -1);
      811 +                atomic_dec_32(&ipst->ips_num_dce_condemned);
 812  812  
 813  813          kmem_cache_free(dce_cache, dce);
 814  814  }
 815  815  
 816  816  void
 817  817  dce_refrele(dce_t *dce)
 818  818  {
 819  819          ASSERT(dce->dce_refcnt != 0);
 820      -        if (atomic_add_32_nv(&dce->dce_refcnt, -1) == 0)
      820 +        if (atomic_dec_32_nv(&dce->dce_refcnt) == 0)
 821  821                  dce_inactive(dce);
 822  822  }
 823  823  
 824  824  void
 825  825  dce_refhold(dce_t *dce)
 826  826  {
 827      -        atomic_add_32(&dce->dce_refcnt, 1);
      827 +        atomic_inc_32(&dce->dce_refcnt);
 828  828          ASSERT(dce->dce_refcnt != 0);
 829  829  }
 830  830  
 831  831  /* No tracing support yet hence the same as the above functions */
 832  832  void
 833  833  dce_refrele_notr(dce_t *dce)
 834  834  {
 835  835          ASSERT(dce->dce_refcnt != 0);
 836      -        if (atomic_add_32_nv(&dce->dce_refcnt, -1) == 0)
      836 +        if (atomic_dec_32_nv(&dce->dce_refcnt) == 0)
 837  837                  dce_inactive(dce);
 838  838  }
 839  839  
 840  840  void
 841  841  dce_refhold_notr(dce_t *dce)
 842  842  {
 843      -        atomic_add_32(&dce->dce_refcnt, 1);
      843 +        atomic_inc_32(&dce->dce_refcnt);
 844  844          ASSERT(dce->dce_refcnt != 0);
 845  845  }
 846  846  
 847  847  /* Report both the IPv4 and IPv6 DCEs. */
 848  848  mblk_t *
 849  849  ip_snmp_get_mib2_ip_dce(queue_t *q, mblk_t *mpctl, ip_stack_t *ipst)
 850  850  {
 851  851          struct opthdr           *optp;
 852  852          mblk_t                  *mp2ctl;
 853  853          dest_cache_entry_t      dest_cache;
↓ open down ↓ 121 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX