Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
@@ -2092,11 +2092,11 @@
ilport->ilport_alua == 0) {
continue;
}
if (alua_state->alua_node != 0) {
ilport->ilport_rtpid =
- atomic_add_16_nv(&stmf_rtpid_counter, 1);
+ atomic_inc_16_nv(&stmf_rtpid_counter);
}
lport = ilport->ilport_lport;
ic_reg_port = ic_reg_port_msg_alloc(
lport->lport_id, ilport->ilport_rtpid,
0, NULL, stmf_proxy_msg_id);
@@ -3251,11 +3251,11 @@
* rtpid will/must be set if this is a standby port
* only register ports that are not standby (proxy) ports
* and ports that are alua participants (ilport_alua == 1)
*/
if (ilport->ilport_standby == 0) {
- ilport->ilport_rtpid = atomic_add_16_nv(&stmf_rtpid_counter, 1);
+ ilport->ilport_rtpid = atomic_inc_16_nv(&stmf_rtpid_counter);
}
if (stmf_state.stmf_alua_state == 1 &&
ilport->ilport_standby == 0 &&
ilport->ilport_alua == 1) {
@@ -3593,11 +3593,11 @@
ilport->ilport_ss_list = iss;
rw_exit(&ilport->ilport_lock);
mutex_exit(&stmf_state.stmf_lock);
iss->iss_creation_time = ddi_get_time();
- ss->ss_session_id = atomic_add_64_nv(&stmf_session_counter, 1);
+ ss->ss_session_id = atomic_inc_64_nv(&stmf_session_counter);
iss->iss_flags &= ~ISS_BEING_CREATED;
/* XXX should we remove ISS_LUN_INVENTORY_CHANGED on new session? */
iss->iss_flags &= ~ISS_LUN_INVENTORY_CHANGED;
DTRACE_PROBE2(session__online, stmf_local_port_t *, lport,
stmf_scsi_session_t *, ss);
@@ -3792,11 +3792,11 @@
} while (atomic_cas_8(&itl->itl_flags, old, new) != old);
itl->itl_hdlrm_reason = hdlrm_reason;
ASSERT(itl->itl_counter);
- if (atomic_add_32_nv(&itl->itl_counter, -1))
+ if (atomic_dec_32_nv(&itl->itl_counter))
return;
stmf_release_itl_handle(lu, itl);
}
@@ -4150,16 +4150,16 @@
ilu->ilu_ntasks++;
mutex_exit(&ilu->ilu_task_lock);
}
itask->itask_ilu_task_cntr = ilu->ilu_cur_task_cntr;
- atomic_add_32(itask->itask_ilu_task_cntr, 1);
+ atomic_inc_32(itask->itask_ilu_task_cntr);
itask->itask_start_time = ddi_get_lbolt();
if ((lun_map_ent != NULL) && ((itask->itask_itl_datap =
lun_map_ent->ent_itl_datap) != NULL)) {
- atomic_add_32(&itask->itask_itl_datap->itl_counter, 1);
+ atomic_inc_32(&itask->itask_itl_datap->itl_counter);
task->task_lu_itl_handle = itask->itask_itl_datap->itl_handle;
} else {
itask->itask_itl_datap = NULL;
task->task_lu_itl_handle = NULL;
}
@@ -4183,11 +4183,11 @@
ilu->ilu_free_tasks = itask;
ilu->ilu_ntasks_free++;
if (ilu->ilu_ntasks == ilu->ilu_ntasks_free)
cv_signal(&ilu->ilu_offline_pending_cv);
mutex_exit(&ilu->ilu_task_lock);
- atomic_add_32(itask->itask_ilu_task_cntr, -1);
+ atomic_dec_32(itask->itask_ilu_task_cntr);
}
void
stmf_task_lu_check_freelist(stmf_i_lu_t *ilu)
{
@@ -4406,22 +4406,22 @@
stmf_itl_task_done(itask);
DTRACE_PROBE2(stmf__task__end, scsi_task_t *, task,
hrtime_t,
itask->itask_done_timestamp - itask->itask_start_timestamp);
if (itask->itask_itl_datap) {
- if (atomic_add_32_nv(&itask->itask_itl_datap->itl_counter,
- -1) == 0) {
+ if (atomic_dec_32_nv(&itask->itask_itl_datap->itl_counter) ==
+ 0) {
stmf_release_itl_handle(task->task_lu,
itask->itask_itl_datap);
}
}
rw_enter(iss->iss_lockp, RW_READER);
lport->lport_task_free(task);
if (itask->itask_worker) {
- atomic_add_32(&stmf_cur_ntasks, -1);
- atomic_add_32(&itask->itask_worker->worker_ref_count, -1);
+ atomic_dec_32(&stmf_cur_ntasks);
+ atomic_dec_32(&itask->itask_worker->worker_ref_count);
}
/*
* After calling stmf_task_lu_free, the task pointer can no longer
* be trusted.
*/
@@ -4443,14 +4443,14 @@
if (task->task_max_nbufs > 4)
task->task_max_nbufs = 4;
task->task_cur_nbufs = 0;
/* Latest value of currently running tasks */
- ct = atomic_add_32_nv(&stmf_cur_ntasks, 1);
+ ct = atomic_inc_32_nv(&stmf_cur_ntasks);
/* Select the next worker using round robin */
- nv = (int)atomic_add_32_nv((uint32_t *)&stmf_worker_sel_counter, 1);
+ nv = (int)atomic_inc_32_nv((uint32_t *)&stmf_worker_sel_counter);
if (nv >= stmf_nworkers_accepting_cmds) {
int s = nv;
do {
nv -= stmf_nworkers_accepting_cmds;
} while (nv >= stmf_nworkers_accepting_cmds);
@@ -4523,11 +4523,11 @@
if (++(w->worker_queue_depth) > w->worker_max_qdepth_pu) {
w->worker_max_qdepth_pu = w->worker_queue_depth;
}
/* Measure task waitq time */
itask->itask_waitq_enter_timestamp = gethrtime();
- atomic_add_32(&w->worker_ref_count, 1);
+ atomic_inc_32(&w->worker_ref_count);
itask->itask_cmd_stack[0] = ITASK_CMD_NEW_TASK;
itask->itask_ncmds = 1;
stmf_task_audit(itask, TE_TASK_START, CMD_OR_IOF_NA, dbuf);
if (dbuf) {
itask->itask_allocated_buf_map = 1;
@@ -4611,11 +4611,11 @@
}
if (itask->itask_flags & ITASK_BEING_ABORTED)
return (STMF_ABORTED);
#ifdef DEBUG
if (!(ioflags & STMF_IOF_STATS_ONLY) && stmf_drop_buf_counter > 0) {
- if (atomic_add_32_nv((uint32_t *)&stmf_drop_buf_counter, -1) ==
+ if (atomic_dec_32_nv((uint32_t *)&stmf_drop_buf_counter) ==
1)
return (STMF_SUCCESS);
}
#endif
@@ -5708,11 +5708,11 @@
if (lu_id->ident_length != 0x10)
return (STMF_INVALID_ARG);
p = (uint8_t *)lu_id;
- gen_number = atomic_add_16_nv(&stmf_lu_id_gen_number, 1);
+ gen_number = atomic_inc_16_nv(&stmf_lu_id_gen_number);
p[0] = 0xf1; p[1] = 3; p[2] = 0; p[3] = 0x10;
p[4] = ((company_id >> 20) & 0xf) | 0x60;
p[5] = (company_id >> 12) & 0xff;
p[6] = (company_id >> 4) & 0xff;
@@ -6340,13 +6340,12 @@
if (stmf_handle_cmd_during_ic(itask))
break;
}
#ifdef DEBUG
if (stmf_drop_task_counter > 0) {
- if (atomic_add_32_nv(
- (uint32_t *)&stmf_drop_task_counter,
- -1) == 1) {
+ if (atomic_dec_32_nv((uint32_t *)&stmf_drop_task_counter) ==
+ 1) {
break;
}
}
#endif
DTRACE_PROBE1(scsi__task__start, scsi_task_t *, task);