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