Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
*** 273,291 ****
}
static void
element_node_ref(element_node_t *element)
{
! atomic_add_32(&element->element_refcnt, 1);
ASSERT(element->element_refcnt > 1);
}
static void
element_node_unref(element_node_t *element)
{
ASSERT(element->element_refcnt > 0);
! if (atomic_add_32_nv(&element->element_refcnt, -1) == 0) {
kmem_cache_free(element_node_cache, element);
}
}
/* ARGSUSED1 */
--- 273,291 ----
}
static void
element_node_ref(element_node_t *element)
{
! atomic_inc_32(&element->element_refcnt);
ASSERT(element->element_refcnt > 1);
}
static void
element_node_unref(element_node_t *element)
{
ASSERT(element->element_refcnt > 0);
! if (atomic_dec_32_nv(&element->element_refcnt) == 0) {
kmem_cache_free(element_node_cache, element);
}
}
/* ARGSUSED1 */
*** 1134,1144 ****
(void) ipgpc_list_insert(&ipgpc_cid_list[class_id].filter_list,
filter_id);
mutex_exit(&ipgpc_cid_list_lock);
}
mutex_exit(&ipgpc_fid_list_lock);
! atomic_add_long(&ipgpc_num_fltrs, 1);
ipgpc3dbg(("ipgpc_addfilter: adding filter %s", filter->filter_name));
return (0);
}
/*
--- 1134,1144 ----
(void) ipgpc_list_insert(&ipgpc_cid_list[class_id].filter_list,
filter_id);
mutex_exit(&ipgpc_cid_list_lock);
}
mutex_exit(&ipgpc_fid_list_lock);
! atomic_inc_ulong(&ipgpc_num_fltrs);
ipgpc3dbg(("ipgpc_addfilter: adding filter %s", filter->filter_name));
return (0);
}
/*
*** 1152,1167 ****
reset_dontcare_stats(void)
{
int i;
for (i = 0; i < NUM_TRIES; ++i) {
! atomic_add_32(&ipgpc_trie_list[i].stats.num_dontcare, -1);
}
for (i = 0; i < NUM_TABLES; ++i) {
! atomic_add_32(&ipgpc_table_list[i].stats.num_dontcare, -1);
}
! atomic_add_32(&ipgpc_ds_table_id.stats.num_dontcare, -1);
}
/*
* ipgpc_parse_class(out_class, nvlp)
*
--- 1152,1167 ----
reset_dontcare_stats(void)
{
int i;
for (i = 0; i < NUM_TRIES; ++i) {
! atomic_dec_32(&ipgpc_trie_list[i].stats.num_dontcare);
}
for (i = 0; i < NUM_TABLES; ++i) {
! atomic_dec_32(&ipgpc_table_list[i].stats.num_dontcare);
}
! atomic_dec_32(&ipgpc_ds_table_id.stats.num_dontcare);
}
/*
* ipgpc_parse_class(out_class, nvlp)
*
*** 1355,1365 ****
ipgpc3dbg(("insertcid: adding class %s",
in_class->class_name));
bcopy(in_class->class_name,
ipgpc_cid_list[class_id].aclass.class_name, MAXNAMELEN);
ipgpc_cid_list[class_id].filter_list = NULL;
! atomic_add_long(&ipgpc_num_cls, 1);
} else {
ipgpc0dbg(("insertcid: class name lookup error %d", err));
mutex_exit(&ipgpc_cid_list_lock);
return (err);
}
--- 1355,1365 ----
ipgpc3dbg(("insertcid: adding class %s",
in_class->class_name));
bcopy(in_class->class_name,
ipgpc_cid_list[class_id].aclass.class_name, MAXNAMELEN);
ipgpc_cid_list[class_id].filter_list = NULL;
! atomic_inc_ulong(&ipgpc_num_cls);
} else {
ipgpc0dbg(("insertcid: class name lookup error %d", err));
mutex_exit(&ipgpc_cid_list_lock);
return (err);
}
*** 1502,1512 ****
ipgpc_filter_destructor(&ipgpc_fid_list[filter_id].filter);
mutex_exit(&ipgpc_fid_list_lock);
/* remove filter id from class' list of filters */
remove_from_cid_filter_list(ipgpc_fid_list[filter_id].class_id,
filter_id);
! atomic_add_long(&ipgpc_num_fltrs, -1);
return (0);
}
/*
* removecid(in_class_id)
--- 1502,1512 ----
ipgpc_filter_destructor(&ipgpc_fid_list[filter_id].filter);
mutex_exit(&ipgpc_fid_list_lock);
/* remove filter id from class' list of filters */
remove_from_cid_filter_list(ipgpc_fid_list[filter_id].class_id,
filter_id);
! atomic_dec_ulong(&ipgpc_num_fltrs);
return (0);
}
/*
* removecid(in_class_id)
*** 1523,1533 ****
if (ipgpc_cid_list[in_class_id].cl_stats != NULL) {
ipp_stat_destroy(ipgpc_cid_list[in_class_id].cl_stats);
ipgpc_cid_list[in_class_id].cl_stats = NULL;
}
/* decrement total number of classes loaded */
! atomic_add_long(&ipgpc_num_cls, -1);
}
/*
* remove_from_cid_filter_list(in_class_id, in_filter_id)
*
--- 1523,1533 ----
if (ipgpc_cid_list[in_class_id].cl_stats != NULL) {
ipp_stat_destroy(ipgpc_cid_list[in_class_id].cl_stats);
ipgpc_cid_list[in_class_id].cl_stats = NULL;
}
/* decrement total number of classes loaded */
! atomic_dec_ulong(&ipgpc_num_cls);
}
/*
* remove_from_cid_filter_list(in_class_id, in_filter_id)
*