Print this page
5042 stop using deprecated atomic functions

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/sfmmu/vm/hat_sfmmu.c
          +++ new/usr/src/uts/sfmmu/vm/hat_sfmmu.c
↓ open down ↓ 3670 lines elided ↑ open up ↑
3671 3671          ASSERT(hmeblkp->hblk_shw_bit == 1);
3672 3672          ASSERT(!hmeblkp->hblk_shared);
3673 3673          vshift = vaddr_to_vshift(hblktag, vaddr, size);
3674 3674          ASSERT(vshift < 8);
3675 3675          /*
3676 3676           * Atomically set shw mask bit
3677 3677           */
3678 3678          do {
3679 3679                  shw_mask = hmeblkp->hblk_shw_mask;
3680 3680                  newshw_mask = shw_mask | (1 << vshift);
3681      -                newshw_mask = cas32(&hmeblkp->hblk_shw_mask, shw_mask,
     3681 +                newshw_mask = atomic_cas_32(&hmeblkp->hblk_shw_mask, shw_mask,
3682 3682                      newshw_mask);
3683 3683          } while (newshw_mask != shw_mask);
3684 3684  
3685 3685          SFMMU_HASH_UNLOCK(hmebp);
3686 3686  
3687 3687          return (hmeblkp);
3688 3688  }
3689 3689  
3690 3690  /*
3691 3691   * This routine cleanup a previous shadow hmeblk and changes it to
↓ open down ↓ 7979 lines elided ↑ open up ↑
11671 11671                  vaddr = (caddr_t)get_hblk_base(hmeblkp);
11672 11672                  vshift = vaddr_to_vshift(shw_hblkp->hblk_tag, vaddr, shw_size);
11673 11673                  ASSERT(vshift < 8);
11674 11674                  /*
11675 11675                   * Atomically clear shadow mask bit
11676 11676                   */
11677 11677                  do {
11678 11678                          shw_mask = shw_hblkp->hblk_shw_mask;
11679 11679                          ASSERT(shw_mask & (1 << vshift));
11680 11680                          newshw_mask = shw_mask & ~(1 << vshift);
11681      -                        newshw_mask = cas32(&shw_hblkp->hblk_shw_mask,
     11681 +                        newshw_mask = atomic_cas_32(&shw_hblkp->hblk_shw_mask,
11682 11682                              shw_mask, newshw_mask);
11683 11683                  } while (newshw_mask != shw_mask);
11684 11684                  hmeblkp->hblk_shadow = NULL;
11685 11685          }
11686 11686  
11687 11687          /*
11688 11688           * remove shadow bit if we are stealing an unused shadow hmeblk.
11689 11689           * sfmmu_hblk_alloc needs it that way, will set shadow bit later if
11690 11690           * we are indeed allocating a shadow hmeblk.
11691 11691           */
↓ open down ↓ 4058 lines elided ↑ open up ↑
15750 15750                  vaddr = (caddr_t)get_hblk_base(hmeblkp);
15751 15751                  vshift = vaddr_to_vshift(shw_hblkp->hblk_tag, vaddr, shw_size);
15752 15752                  ASSERT(vshift < 8);
15753 15753                  /*
15754 15754                   * Atomically clear shadow mask bit
15755 15755                   */
15756 15756                  do {
15757 15757                          shw_mask = shw_hblkp->hblk_shw_mask;
15758 15758                          ASSERT(shw_mask & (1 << vshift));
15759 15759                          newshw_mask = shw_mask & ~(1 << vshift);
15760      -                        newshw_mask = cas32(&shw_hblkp->hblk_shw_mask,
     15760 +                        newshw_mask = atomic_cas_32(&shw_hblkp->hblk_shw_mask,
15761 15761                              shw_mask, newshw_mask);
15762 15762                  } while (newshw_mask != shw_mask);
15763 15763                  hmeblkp->hblk_shadow = NULL;
15764 15764          }
15765 15765          hmeblkp->hblk_shw_bit = 0;
15766 15766  
15767 15767          if (hmeblkp->hblk_shared) {
15768 15768  #ifdef  DEBUG
15769 15769                  sf_srd_t        *srdp;
15770 15770                  sf_region_t     *rgnp;
↓ open down ↓ 85 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX