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