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

*** 132,142 **** return (NULL); mutex_enter(&nts->nts_lock); nd = net_find(protocol, nts); if (nd != NULL) ! atomic_add_32((uint_t *)&nd->netd_refcnt, 1); mutex_exit(&nts->nts_lock); return (nd); } /* --- 132,142 ---- return (NULL); mutex_enter(&nts->nts_lock); nd = net_find(protocol, nts); if (nd != NULL) ! atomic_inc_32((uint_t *)&nd->netd_refcnt); mutex_exit(&nts->nts_lock); return (nd); } /*
*** 155,165 **** * of net_protocol_release() is going to free this structure then * it is now the only owner (refcnt==1) and it will have been * removed from the nts_netd_head list on the neti_stack_t from a * call to net_protocol_unregister already, so it is thus an orphan. */ ! if (atomic_add_32_nv((uint_t *)&info->netd_refcnt, -1) == 0) { ASSERT(info->netd_hooks == NULL); ASSERT(info->netd_stack == NULL); kmem_free(info, sizeof (struct net_data)); } --- 155,165 ---- * of net_protocol_release() is going to free this structure then * it is now the only owner (refcnt==1) and it will have been * removed from the nts_netd_head list on the neti_stack_t from a * call to net_protocol_unregister already, so it is thus an orphan. */ ! if (atomic_dec_32_nv((uint_t *)&info->netd_refcnt) == 0) { ASSERT(info->netd_hooks == NULL); ASSERT(info->netd_stack == NULL); kmem_free(info, sizeof (struct net_data)); }
*** 199,209 **** if (info != NULL) (void) net_protocol_release(info); if (n != NULL) ! atomic_add_32((uint_t *)&n->netd_refcnt, 1); mutex_exit(&nts->nts_lock); return (n); } --- 199,209 ---- if (info != NULL) (void) net_protocol_release(info); if (n != NULL) ! atomic_inc_32((uint_t *)&n->netd_refcnt); mutex_exit(&nts->nts_lock); return (n); }