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

*** 307,319 **** if (lvp->lv_base_va != NULL) { vmem_xfree(is_64bit ? lib_va_64_arena : lib_va_32_arena, lvp->lv_base_va, lvp->lv_len); if (is_64bit) { ! atomic_add_32(&libs_mapped_64, -1); } else { ! atomic_add_32(&libs_mapped_32, -1); } } kmem_free(lvp, sizeof (struct lib_va)); } --- 307,319 ---- if (lvp->lv_base_va != NULL) { vmem_xfree(is_64bit ? lib_va_64_arena : lib_va_32_arena, lvp->lv_base_va, lvp->lv_len); if (is_64bit) { ! atomic_dec_32(&libs_mapped_64); } else { ! atomic_dec_32(&libs_mapped_32); } } kmem_free(lvp, sizeof (struct lib_va)); }
*** 470,483 **** lvp->lv_flags = LV_ELF32; } if (base_va != NULL) { if (model == DATAMODEL_LP64) { ! atomic_add_32(&libs_mapped_64, 1); } else { ASSERT(model == DATAMODEL_ILP32); ! atomic_add_32(&libs_mapped_32, 1); } } ASSERT(*tmp == NULL); *tmp = lvp; mutex_exit(LIB_VA_HASH_MUTEX(index)); --- 470,483 ---- lvp->lv_flags = LV_ELF32; } if (base_va != NULL) { if (model == DATAMODEL_LP64) { ! atomic_inc_32(&libs_mapped_64); } else { ASSERT(model == DATAMODEL_ILP32); ! atomic_inc_32(&libs_mapped_32); } } ASSERT(*tmp == NULL); *tmp = lvp; mutex_exit(LIB_VA_HASH_MUTEX(index));