Print this page
5042 stop using deprecated atomic functions

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/sun4u/os/ppage.c
          +++ new/usr/src/uts/sun4u/os/ppage.c
↓ open down ↓ 15 lines elided ↑ open up ↑
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
  24   24   */
  25   25  
  26      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  27      -
  28   26  #include <sys/types.h>
  29   27  #include <sys/systm.h>
  30   28  #include <sys/archsystm.h>
  31   29  #include <sys/machsystm.h>
  32   30  #include <sys/t_lock.h>
  33   31  #include <sys/vmem.h>
  34   32  #include <sys/mman.h>
  35   33  #include <sys/vm.h>
  36   34  #include <sys/cpu.h>
  37   35  #include <sys/cmn_err.h>
↓ open down ↓ 144 lines elided ↑ open up ↑
 182  180  
 183  181          start = color;
 184  182          do {
 185  183                  for (nset = 0; nset < nsets; nset++) {
 186  184                          index = clsettoarray(color, nset);
 187  185                          va = ppmap_vaddrs[index];
 188  186                          if (va != NULL) {
 189  187  #ifdef PPDEBUG
 190  188                                  align_hits[color]++;
 191  189  #endif /* PPDEBUG */
 192      -                                if (casptr(&ppmap_vaddrs[index],
      190 +                                if (atomic_cas_ptr(&ppmap_vaddrs[index],
 193  191                                      va, NULL) == va) {
 194  192                                          hat_memload(kas.a_hat, va, pp,
 195  193                                              vprot | HAT_NOSYNC,
 196  194                                              HAT_LOAD_LOCK);
 197  195                                          return (va);
 198  196                                  }
 199  197                          }
 200  198                  }
 201  199                  /*
 202  200                   * first pick didn't succeed, try another
↓ open down ↓ 109 lines elided ↑ open up ↑
 312  310                  start = vcolor;
 313  311                  stride = ppmap_pages; /* number of colors */
 314  312                  myslot += vcolor;
 315  313          } else {
 316  314                  start = 0;
 317  315                  stride = 1;
 318  316          }
 319  317  
 320  318          for (i = start; i < pp_slots; i += stride) {
 321  319                  if (*myslot == NULL) {
 322      -                        if (casptr(myslot, NULL, va) == NULL)
      320 +                        if (atomic_cas_ptr(myslot, NULL, va) == NULL)
 323  321                                  break;
 324  322                  }
 325  323                  myslot += stride;
 326  324                  va += MMU_PAGESIZE * stride;
 327  325          }
 328  326  
 329  327          if (i >= pp_slots) {
 330  328                  PP_STAT_ADD(ploadfail);
 331  329                  return (NULL);
 332  330          }
↓ open down ↓ 236 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX