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

*** 8291,8307 **** "(limit %d, count %d)\n", max_qps, hca_p->hca_qp_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(ep_rp, 1); ! atomic_add_32(&hca_p->hca_qp_count, 1); } status = ibt_alloc_rc_channel(hca_hdl, flags, args, chan_hdl_p, sizes); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(ep_rp, 1); ! atomic_add_32(&hca_p->hca_qp_count, -1); } return (status); } static ibt_status_t --- 8291,8307 ---- "(limit %d, count %d)\n", max_qps, hca_p->hca_qp_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(ep_rp, 1); ! atomic_inc_32(&hca_p->hca_qp_count); } status = ibt_alloc_rc_channel(hca_hdl, flags, args, chan_hdl_p, sizes); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(ep_rp, 1); ! atomic_dec_32(&hca_p->hca_qp_count); } return (status); } static ibt_status_t
*** 8316,8326 **** if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(ep_rp) > 0) { DAPLKA_RS_ACCT_DEC(ep_rp, 1); ! atomic_add_32(&hca_p->hca_qp_count, -1); } return (status); } static ibt_status_t --- 8316,8326 ---- if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(ep_rp) > 0) { DAPLKA_RS_ACCT_DEC(ep_rp, 1); ! atomic_dec_32(&hca_p->hca_qp_count); } return (status); } static ibt_status_t
*** 8343,8359 **** "(limit %d, count %d)\n", max_cqs, hca_p->hca_cq_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(evd_rp, 1); ! atomic_add_32(&hca_p->hca_cq_count, 1); } status = ibt_alloc_cq(hca_hdl, cq_attr, ibt_cq_p, real_size); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(evd_rp, 1); ! atomic_add_32(&hca_p->hca_cq_count, -1); } return (status); } static ibt_status_t --- 8343,8359 ---- "(limit %d, count %d)\n", max_cqs, hca_p->hca_cq_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(evd_rp, 1); ! atomic_inc_32(&hca_p->hca_cq_count); } status = ibt_alloc_cq(hca_hdl, cq_attr, ibt_cq_p, real_size); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(evd_rp, 1); ! atomic_dec_32(&hca_p->hca_cq_count); } return (status); } static ibt_status_t
*** 8368,8378 **** if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(evd_rp) > 0) { DAPLKA_RS_ACCT_DEC(evd_rp, 1); ! atomic_add_32(&hca_p->hca_cq_count, -1); } return (status); } static ibt_status_t --- 8368,8378 ---- if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(evd_rp) > 0) { DAPLKA_RS_ACCT_DEC(evd_rp, 1); ! atomic_dec_32(&hca_p->hca_cq_count); } return (status); } static ibt_status_t
*** 8395,8411 **** "(limit %d, count %d)\n", max_pds, hca_p->hca_pd_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(pd_rp, 1); ! atomic_add_32(&hca_p->hca_pd_count, 1); } status = ibt_alloc_pd(hca_hdl, flags, pd_hdl_p); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(pd_rp, 1); ! atomic_add_32(&hca_p->hca_pd_count, -1); } return (status); } static ibt_status_t --- 8395,8411 ---- "(limit %d, count %d)\n", max_pds, hca_p->hca_pd_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(pd_rp, 1); ! atomic_inc_32(&hca_p->hca_pd_count); } status = ibt_alloc_pd(hca_hdl, flags, pd_hdl_p); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(pd_rp, 1); ! atomic_dec_32(&hca_p->hca_pd_count); } return (status); } static ibt_status_t
*** 8421,8431 **** if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(pd_rp) > 0) { DAPLKA_RS_ACCT_DEC(pd_rp, 1); ! atomic_add_32(&hca_p->hca_pd_count, -1); } return (status); } static ibt_status_t --- 8421,8431 ---- if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(pd_rp) > 0) { DAPLKA_RS_ACCT_DEC(pd_rp, 1); ! atomic_dec_32(&hca_p->hca_pd_count); } return (status); } static ibt_status_t
*** 8449,8465 **** "(limit %d, count %d)\n", max_mws, hca_p->hca_mw_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(mw_rp, 1); ! atomic_add_32(&hca_p->hca_mw_count, 1); } status = ibt_alloc_mw(hca_hdl, pd_hdl, flags, mw_hdl_p, rkey_p); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(mw_rp, 1); ! atomic_add_32(&hca_p->hca_mw_count, -1); } return (status); } static ibt_status_t --- 8449,8465 ---- "(limit %d, count %d)\n", max_mws, hca_p->hca_mw_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(mw_rp, 1); ! atomic_inc_32(&hca_p->hca_mw_count); } status = ibt_alloc_mw(hca_hdl, pd_hdl, flags, mw_hdl_p, rkey_p); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(mw_rp, 1); ! atomic_dec_32(&hca_p->hca_mw_count); } return (status); } static ibt_status_t
*** 8475,8485 **** if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(mw_rp) > 0) { DAPLKA_RS_ACCT_DEC(mw_rp, 1); ! atomic_add_32(&hca_p->hca_mw_count, -1); } return (status); } static ibt_status_t --- 8475,8485 ---- if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(mw_rp) > 0) { DAPLKA_RS_ACCT_DEC(mw_rp, 1); ! atomic_dec_32(&hca_p->hca_mw_count); } return (status); } static ibt_status_t
*** 8503,8519 **** "(limit %d, count %d)\n", max_mrs, hca_p->hca_mr_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(mr_rp, 1); ! atomic_add_32(&hca_p->hca_mr_count, 1); } status = ibt_register_mr(hca_hdl, pd_hdl, mr_attr, mr_hdl_p, mr_desc_p); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(mr_rp, 1); ! atomic_add_32(&hca_p->hca_mr_count, -1); } return (status); } static ibt_status_t --- 8503,8519 ---- "(limit %d, count %d)\n", max_mrs, hca_p->hca_mr_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(mr_rp, 1); ! atomic_inc_32(&hca_p->hca_mr_count); } status = ibt_register_mr(hca_hdl, pd_hdl, mr_attr, mr_hdl_p, mr_desc_p); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(mr_rp, 1); ! atomic_dec_32(&hca_p->hca_mr_count); } return (status); } static ibt_status_t
*** 8538,8555 **** "(limit %d, count %d)\n", max_mrs, hca_p->hca_mr_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(mr_rp, 1); ! atomic_add_32(&hca_p->hca_mr_count, 1); } status = ibt_register_shared_mr(hca_hdl, mr_hdl, pd_hdl, smr_attr_p, mr_hdl_p, mr_desc_p); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(mr_rp, 1); ! atomic_add_32(&hca_p->hca_mr_count, -1); } return (status); } static ibt_status_t --- 8538,8555 ---- "(limit %d, count %d)\n", max_mrs, hca_p->hca_mr_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(mr_rp, 1); ! atomic_inc_32(&hca_p->hca_mr_count); } status = ibt_register_shared_mr(hca_hdl, mr_hdl, pd_hdl, smr_attr_p, mr_hdl_p, mr_desc_p); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(mr_rp, 1); ! atomic_dec_32(&hca_p->hca_mr_count); } return (status); } static ibt_status_t
*** 8565,8575 **** if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(mr_rp) > 0) { DAPLKA_RS_ACCT_DEC(mr_rp, 1); ! atomic_add_32(&hca_p->hca_mr_count, -1); } return (status); } static ibt_status_t --- 8565,8575 ---- if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(mr_rp) > 0) { DAPLKA_RS_ACCT_DEC(mr_rp, 1); ! atomic_dec_32(&hca_p->hca_mr_count); } return (status); } static ibt_status_t
*** 8593,8609 **** "(limit %d, count %d)\n", max_srqs, hca_p->hca_srq_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(srq_rp, 1); ! atomic_add_32(&hca_p->hca_srq_count, 1); } status = ibt_alloc_srq(hca_hdl, flags, pd, reqsz, srq_hdl_p, realsz); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(srq_rp, 1); ! atomic_add_32(&hca_p->hca_srq_count, -1); } return (status); } static ibt_status_t --- 8593,8609 ---- "(limit %d, count %d)\n", max_srqs, hca_p->hca_srq_count); return (IBT_INSUFF_RESOURCE); } DAPLKA_RS_ACCT_INC(srq_rp, 1); ! atomic_inc_32(&hca_p->hca_srq_count); } status = ibt_alloc_srq(hca_hdl, flags, pd, reqsz, srq_hdl_p, realsz); if (status != IBT_SUCCESS && acct_enabled) { DAPLKA_RS_ACCT_DEC(srq_rp, 1); ! atomic_dec_32(&hca_p->hca_srq_count); } return (status); } static ibt_status_t
*** 8620,8630 **** if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(srq_rp) > 0) { DAPLKA_RS_ACCT_DEC(srq_rp, 1); ! atomic_add_32(&hca_p->hca_srq_count, -1); } return (status); } --- 8620,8630 ---- if (status != IBT_SUCCESS) { return (status); } if (DAPLKA_RS_ACCT_CHARGED(srq_rp) > 0) { DAPLKA_RS_ACCT_DEC(srq_rp, 1); ! atomic_dec_32(&hca_p->hca_srq_count); } return (status); }
*** 9033,9043 **** */ if (otyp != OTYP_CHR) { return (EINVAL); } D2("daplka_close: closing rnum = %d\n", rnum); ! atomic_add_32(&daplka_pending_close, 1); /* * remove from resource table. */ ia_rp = (daplka_ia_resource_t *)daplka_resource_remove(rnum); --- 9033,9043 ---- */ if (otyp != OTYP_CHR) { return (EINVAL); } D2("daplka_close: closing rnum = %d\n", rnum); ! atomic_inc_32(&daplka_pending_close); /* * remove from resource table. */ ia_rp = (daplka_ia_resource_t *)daplka_resource_remove(rnum);
*** 9046,9056 **** * remove the initial reference */ if (ia_rp != NULL) { DAPLKA_RS_UNREF(ia_rp); } ! atomic_add_32(&daplka_pending_close, -1); return (DDI_SUCCESS); } /* --- 9046,9056 ---- * remove the initial reference */ if (ia_rp != NULL) { DAPLKA_RS_UNREF(ia_rp); } ! atomic_dec_32(&daplka_pending_close); return (DDI_SUCCESS); } /*
*** 9844,9854 **** daplka_timer_hkey_gen() { uint32_t new_hkey; do { ! new_hkey = atomic_add_32_nv(&daplka_timer_hkey, 1); } while (new_hkey == 0); return (new_hkey); } --- 9844,9854 ---- daplka_timer_hkey_gen() { uint32_t new_hkey; do { ! new_hkey = atomic_inc_32_nv(&daplka_timer_hkey); } while (new_hkey == 0); return (new_hkey); }