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