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

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/sun4u/os/memscrub.c
          +++ new/usr/src/uts/sun4u/os/memscrub.c
↓ open down ↓ 1406 lines elided ↑ open up ↑
1407 1407          void *arg,
1408 1408          pgcnt_t delta_pages)
1409 1409  {
1410 1410          /*
1411 1411           * We increment pause_memscrub before entering new_memscrub(). This
1412 1412           * will force the memscrubber to sleep, allowing the DR callback
1413 1413           * thread to acquire memscrub_lock in new_memscrub(). The use of
1414 1414           * atomic_add_32() allows concurrent memory DR operations to use the
1415 1415           * callbacks safely.
1416 1416           */
1417      -        atomic_add_32(&pause_memscrub, 1);
     1417 +        atomic_inc_32(&pause_memscrub);
1418 1418          ASSERT(pause_memscrub != 0);
1419 1419  
1420 1420          /*
1421 1421           * "Don't care" if we are not scrubbing new memory.
1422 1422           */
1423 1423          (void) new_memscrub(0);         /* retain page retire list */
1424 1424  
1425 1425          /* Restore the pause setting. */
1426      -        atomic_add_32(&pause_memscrub, -1);
     1426 +        atomic_dec_32(&pause_memscrub);
1427 1427  }
1428 1428  
1429 1429  /*ARGSUSED*/
1430 1430  static int
1431 1431  memscrub_mem_config_pre_del(
1432 1432          void *arg,
1433 1433          pgcnt_t delta_pages)
1434 1434  {
1435 1435          /* Nothing to do. */
1436 1436          return (0);
↓ open down ↓ 6 lines elided ↑ open up ↑
1443 1443          pgcnt_t delta_pages,
1444 1444          int cancelled)
1445 1445  {
1446 1446          /*
1447 1447           * We increment pause_memscrub before entering new_memscrub(). This
1448 1448           * will force the memscrubber to sleep, allowing the DR callback
1449 1449           * thread to acquire memscrub_lock in new_memscrub(). The use of
1450 1450           * atomic_add_32() allows concurrent memory DR operations to use the
1451 1451           * callbacks safely.
1452 1452           */
1453      -        atomic_add_32(&pause_memscrub, 1);
     1453 +        atomic_inc_32(&pause_memscrub);
1454 1454          ASSERT(pause_memscrub != 0);
1455 1455  
1456 1456          /*
1457 1457           * Must stop scrubbing deleted memory as it may be disconnected.
1458 1458           */
1459 1459          if (new_memscrub(1)) {  /* update page retire list */
1460 1460                  disable_memscrub = 1;
1461 1461          }
1462 1462  
1463 1463          /* Restore the pause setting. */
1464      -        atomic_add_32(&pause_memscrub, -1);
     1464 +        atomic_dec_32(&pause_memscrub);
1465 1465  }
1466 1466  
1467 1467  static kphysm_setup_vector_t memscrub_mem_config_vec = {
1468 1468          KPHYSM_SETUP_VECTOR_VERSION,
1469 1469          memscrub_mem_config_post_add,
1470 1470          memscrub_mem_config_pre_del,
1471 1471          memscrub_mem_config_post_del,
1472 1472  };
1473 1473  
1474 1474  static void
↓ open down ↓ 15 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX