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));