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

*** 166,178 **** * for comparison. */ if (slc != NULL) { int64_t now; ! if (atomic_add_32_nv(&slc->slc_cnt, 1) > slc->slc_max + 1) { now = ddi_get_lbolt64(); ! atomic_add_32(&slc->slc_cnt, -1); SCTP_KSTAT(sctps, sctp_listen_cnt_drop); slc->slc_drop++; if (now - slc->slc_report_time > MSEC_TO_TICK(SCTP_SLC_REPORT_INTERVAL)) { zcmn_err(connp->conn_zoneid, CE_WARN, --- 166,178 ---- * for comparison. */ if (slc != NULL) { int64_t now; ! if (atomic_inc_32_nv(&slc->slc_cnt) > slc->slc_max + 1) { now = ddi_get_lbolt64(); ! atomic_dec_32(&slc->slc_cnt); SCTP_KSTAT(sctps, sctp_listen_cnt_drop); slc->slc_drop++; if (now - slc->slc_report_time > MSEC_TO_TICK(SCTP_SLC_REPORT_INTERVAL)) { zcmn_err(connp->conn_zoneid, CE_WARN,
*** 187,197 **** slc_set = B_TRUE; } if ((eager = sctp_create_eager(sctp)) == NULL) { if (slc_set) ! atomic_add_32(&slc->slc_cnt, -1); return (NULL); } econnp = eager->sctp_connp; if (connp->conn_policy != NULL) { --- 187,197 ---- slc_set = B_TRUE; } if ((eager = sctp_create_eager(sctp)) == NULL) { if (slc_set) ! atomic_dec_32(&slc->slc_cnt); return (NULL); } econnp = eager->sctp_connp; if (connp->conn_policy != NULL) {