Print this page
5042 stop using deprecated atomic functions

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/ksyms.c
          +++ new/usr/src/uts/common/io/ksyms.c
↓ open down ↓ 239 lines elided ↑ open up ↑
 240  240          addr = ksyms_mapin(&hdr, realsize);
 241  241          ksyms_buflist_free(&hdr);
 242  242          if (addr == NULL)
 243  243                  return (EOVERFLOW);
 244  244  
 245  245          /*
 246  246           * Reserve a clone entry.  Note that we don't use clone 0
 247  247           * since that's the "real" minor number.
 248  248           */
 249  249          for (clone = 1; clone < nksyms_clones; clone++) {
 250      -                if (casptr(&ksyms_clones[clone].ksyms_base, 0, addr) == 0) {
      250 +                if (atomic_cas_ptr(&ksyms_clones[clone].ksyms_base, 0, addr) ==
      251 +                    0) {
 251  252                          ksyms_clones[clone].ksyms_size = realsize;
 252  253                          *devp = makedevice(getemajor(*devp), clone);
 253  254                          (void) ddi_prop_update_int(*devp, ksyms_devi,
 254  255                              "size", realsize);
 255  256                          modunload_disable();
 256  257                          return (0);
 257  258                  }
 258  259          }
 259  260          cmn_err(CE_NOTE, "ksyms: too many open references");
 260  261          (void) as_unmap(curproc->p_as, addr, roundup(realsize, PAGESIZE));
↓ open down ↓ 224 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX