Print this page
5042 stop using deprecated atomic functions

*** 81,91 **** } mnode = PFN_2_MEM_NODE(start); ASSERT(mnode < max_mem_nodes); ! if (cas32((uint32_t *)&mem_node_config[mnode].exists, 0, 1)) { /* * Add slice to existing node. */ if (start < mem_node_config[mnode].physbase) mem_node_config[mnode].physbase = start; --- 81,91 ---- } mnode = PFN_2_MEM_NODE(start); ASSERT(mnode < max_mem_nodes); ! if (atomic_cas_32((uint32_t *)&mem_node_config[mnode].exists, 0, 1)) { /* * Add slice to existing node. */ if (start < mem_node_config[mnode].physbase) mem_node_config[mnode].physbase = start;
*** 96,106 **** mem_node_config[mnode].physmax = end; atomic_add_16(&num_memnodes, 1); do { oldmask = memnodes_mask; newmask = memnodes_mask | (1ull << mnode); ! } while (cas64(&memnodes_mask, oldmask, newmask) != oldmask); } /* * Let the common lgrp framework know about the new memory */ lgrp_config(LGRP_CONFIG_MEM_ADD, mnode, MEM_NODE_2_LGRPHAND(mnode)); --- 96,107 ---- mem_node_config[mnode].physmax = end; atomic_add_16(&num_memnodes, 1); do { oldmask = memnodes_mask; newmask = memnodes_mask | (1ull << mnode); ! } while (atomic_cas_64(&memnodes_mask, oldmask, newmask) != ! oldmask); } /* * Let the common lgrp framework know about the new memory */ lgrp_config(LGRP_CONFIG_MEM_ADD, mnode, MEM_NODE_2_LGRPHAND(mnode));
*** 156,166 **** */ ASSERT(MNODE_PGCNT(mnode) == 0); do { omask = memnodes_mask; nmask = omask & ~(1ull << mnode); ! } while (cas64(&memnodes_mask, omask, nmask) != omask); atomic_add_16(&num_memnodes, -1); mem_node_config[mnode].exists = 0; } } --- 157,167 ---- */ ASSERT(MNODE_PGCNT(mnode) == 0); do { omask = memnodes_mask; nmask = omask & ~(1ull << mnode); ! } while (atomic_cas_64(&memnodes_mask, omask, nmask) != omask); atomic_add_16(&num_memnodes, -1); mem_node_config[mnode].exists = 0; } }
*** 218,228 **** /* * Find an unused memnode. Update it atomically to prevent * a first time memnode creation race. */ for (mnode = 0; mnode < max_mem_nodes; mnode++) ! if (cas32((uint32_t *)&mem_node_config[mnode].exists, 0, 1) == 0) break; if (mnode >= max_mem_nodes) panic("Out of free memnodes\n"); --- 219,229 ---- /* * Find an unused memnode. Update it atomically to prevent * a first time memnode creation race. */ for (mnode = 0; mnode < max_mem_nodes; mnode++) ! if (atomic_cas_32((uint32_t *)&mem_node_config[mnode].exists, 0, 1) == 0) break; if (mnode >= max_mem_nodes) panic("Out of free memnodes\n");
*** 231,241 **** mem_node_config[mnode].physmax = 0; atomic_add_16(&num_memnodes, 1); do { oldmask = memnodes_mask; newmask = memnodes_mask | (1ull << mnode); ! } while (cas64(&memnodes_mask, oldmask, newmask) != oldmask); return (mnode); } /* --- 232,242 ---- mem_node_config[mnode].physmax = 0; atomic_add_16(&num_memnodes, 1); do { oldmask = memnodes_mask; newmask = memnodes_mask | (1ull << mnode); ! } while (atomic_cas_64(&memnodes_mask, oldmask, newmask) != oldmask); return (mnode); } /*