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

@@ -936,11 +936,11 @@
                     drv_usectohz(USEC_DEREG_RP_TIMEOUT);
                 irp->irp_dereg_count = 0;
                 fct_post_to_discovery_queue(iport, irp, NULL);
 
                 /* A PLOGI also invalidates any RSCNs related to this rp */
-                atomic_add_32(&irp->irp_rscn_counter, 1);
+                atomic_inc_32(&irp->irp_rscn_counter);
         } else {
                 /*
                  * For everything else, we have (or be able to lookup) a
                  * valid port pointer.
                  */

@@ -981,11 +981,11 @@
                  * Tell the framework that fct_cmd_free() can decrement the
                  * irp_nonfcp_xchg_count variable.
                  */
                 atomic_or_32(&icmd->icmd_flags, ICMD_IMPLICIT_CMD_HAS_RESOURCE);
         }
-        atomic_add_16(&irp->irp_nonfcp_xchg_count, 1);
+        atomic_inc_16(&irp->irp_nonfcp_xchg_count);
 
         /*
          * Grab the remote port lock while we modify the port state.
          * we should not drop the fca port lock (as a reader) until we
          * modify the remote port state.

@@ -996,17 +996,17 @@
             (op == ELS_OP_TPRLO)) {
                 uint32_t rf = IRP_PRLI_DONE;
                 if ((op == ELS_OP_PLOGI) || (op == ELS_OP_LOGO)) {
                         rf |= IRP_PLOGI_DONE;
                         if (irp->irp_flags & IRP_PLOGI_DONE)
-                                atomic_add_32(&iport->iport_nrps_login, -1);
+                                atomic_dec_32(&iport->iport_nrps_login);
                 }
-                atomic_add_16(&irp->irp_sa_elses_count, 1);
+                atomic_inc_16(&irp->irp_sa_elses_count);
                 atomic_and_32(&irp->irp_flags, ~rf);
                 atomic_or_32(&icmd->icmd_flags, ICMD_SESSION_AFFECTING);
         } else {
-                atomic_add_16(&irp->irp_nsa_elses_count, 1);
+                atomic_inc_16(&irp->irp_nsa_elses_count);
         }
 
         fct_post_to_discovery_queue(iport, irp, icmd);
 
         rw_exit(&irp->irp_lock);

@@ -1158,11 +1158,11 @@
         /* By this time rport_handle is valid */
         if ((irp->irp_flags & IRP_HANDLE_OPENED) == 0) {
                 iport->iport_rp_slots[rp->rp_handle] = irp;
                 atomic_or_32(&irp->irp_flags, IRP_HANDLE_OPENED);
         }
-        (void) atomic_add_64_nv(&iport->iport_last_change, 1);
+        (void) atomic_inc_64_nv(&iport->iport_last_change);
         fct_log_remote_port_event(port, ESC_SUNFC_TARGET_ADD,
             rp->rp_pwwn, rp->rp_id);
 
 register_rp_done:;
         rw_exit(&irp->irp_lock);

@@ -1203,11 +1203,11 @@
 
         if (irp->irp_flags & IRP_HANDLE_OPENED) {
                 atomic_and_32(&irp->irp_flags, ~IRP_HANDLE_OPENED);
                 iport->iport_rp_slots[rp->rp_handle] = NULL;
         }
-        (void) atomic_add_64_nv(&iport->iport_last_change, 1);
+        (void) atomic_inc_64_nv(&iport->iport_last_change);
         fct_log_remote_port_event(port, ESC_SUNFC_TARGET_REMOVE,
             rp->rp_pwwn, rp->rp_id);
 
         return (FCT_SUCCESS);
 }

@@ -1509,16 +1509,16 @@
                                 atomic_and_32(&irp->irp_flags,
                                     ~IRP_SOL_PLOGI_IN_PROGRESS);
                         }
                 }
         }
-        atomic_add_16(&irp->irp_sa_elses_count, -1);
+        atomic_dec_16(&irp->irp_sa_elses_count);
 
         if (ret == FCT_SUCCESS) {
                 if (cmd_type == FCT_CMD_RCVD_ELS) {
                         atomic_or_32(&irp->irp_flags, IRP_PLOGI_DONE);
-                        atomic_add_32(&iport->iport_nrps_login, 1);
+                        atomic_inc_32(&iport->iport_nrps_login);
                         if (irp->irp_deregister_timer)
                                 irp->irp_deregister_timer = 0;
                 }
                 if (icmd_flags & ICMD_IMPLICIT) {
                         DTRACE_FC_5(rport__login__end,

@@ -1595,11 +1595,11 @@
                         stmf_trace(iport->iport_alias, "Rejecting PRLI from %x "
                             " pld sz %d, prli_flags %x", cmd->cmd_rportid,
                             els->els_req_size, els->els_req_payload[6]);
 
                 fct_dequeue_els(irp);
-                atomic_add_16(&irp->irp_sa_elses_count, -1);
+                atomic_dec_16(&irp->irp_sa_elses_count);
                 ret = fct_send_accrjt(cmd, ELS_OP_LSRJT, 3, 0x2c);
                 goto prli_end;
         }
 
         if (irp->irp_fcp_xchg_count) {

@@ -1669,11 +1669,11 @@
                         atomic_or_32(&irp->irp_flags, IRP_SCSI_SESSION_STARTED);
                 }
         }
 
         fct_dequeue_els(irp);
-        atomic_add_16(&irp->irp_sa_elses_count, -1);
+        atomic_dec_16(&irp->irp_sa_elses_count);
         if (ses == NULL) {
                 /* fail PRLI */
                 ret = fct_send_accrjt(cmd, ELS_OP_LSRJT, 3, 0);
         } else {
                 /* accept PRLI */

@@ -1773,11 +1773,11 @@
                 irp->irp_session = NULL;
                 atomic_and_32(&irp->irp_flags, ~IRP_SCSI_SESSION_STARTED);
         }
 
         fct_dequeue_els(irp);
-        atomic_add_16(&irp->irp_sa_elses_count, -1);
+        atomic_dec_16(&irp->irp_sa_elses_count);
 
         /* don't send response if this is an implicit logout cmd */
         if (!(icmd->icmd_flags & ICMD_IMPLICIT)) {
                 if (cmd->cmd_type == FCT_CMD_RCVD_ELS) {
                         ret = fct_send_accrjt(cmd, ELS_OP_ACC, 0, 0);

@@ -1884,11 +1884,11 @@
                 irp->irp_session = NULL;
                 atomic_and_32(&irp->irp_flags, ~IRP_SCSI_SESSION_STARTED);
         }
 
         fct_dequeue_els(irp);
-        atomic_add_16(&irp->irp_sa_elses_count, -1);
+        atomic_dec_16(&irp->irp_sa_elses_count);
         ret = fct_send_accrjt(cmd, ELS_OP_ACC, 0, 0);
         if (ret != FCT_SUCCESS)
                 fct_queue_cmd_for_termination(cmd, ret);
 
         return (DISC_ACTION_RESCAN);

@@ -1909,11 +1909,11 @@
         uint8_t                 *p;
         uint32_t                *q;
         fct_status_t            ret;
 
         fct_dequeue_els(irp);
-        atomic_add_16(&irp->irp_nsa_elses_count, -1);
+        atomic_dec_16(&irp->irp_nsa_elses_count);
 
         /* Validate the adisc request */
         p = els->els_req_payload;
         q = (uint32_t *)p;
         if ((els->els_req_size != 28) || (bcmp(rp->rp_pwwn, p + 8, 8)) ||

@@ -1947,11 +1947,11 @@
         fct_status_t             ret   = FCT_FAILURE;
         uint8_t                  op    = 0;
 
         ASSERT(icmd->icmd_cmd->cmd_type == FCT_CMD_RCVD_ELS);
         fct_dequeue_els(ICMD_TO_IRP(icmd));
-        atomic_add_16(&ICMD_TO_IRP(icmd)->irp_nsa_elses_count, -1);
+        atomic_dec_16(&ICMD_TO_IRP(icmd)->irp_nsa_elses_count);
         op = ICMD_TO_ELS(icmd)->els_req_payload[0];
         stmf_trace(iport->iport_alias, "Rejecting unknown unsol els %x (%s)",
             op, FCT_ELS_NAME(op));
         ret = fct_send_accrjt(icmd->icmd_cmd, ELS_OP_LSRJT, 1, 0);
         if (ret != FCT_SUCCESS) {

@@ -1969,11 +1969,11 @@
         uint8_t                  op    = 0;
         uint8_t                 *rscn_req_payload;
         uint32_t                 rscn_req_size;
 
         fct_dequeue_els(ICMD_TO_IRP(icmd));
-        atomic_add_16(&ICMD_TO_IRP(icmd)->irp_nsa_elses_count, -1);
+        atomic_dec_16(&ICMD_TO_IRP(icmd)->irp_nsa_elses_count);
         if (icmd->icmd_cmd->cmd_type == FCT_CMD_RCVD_ELS) {
                 op = ICMD_TO_ELS(icmd)->els_req_payload[0];
                 stmf_trace(iport->iport_alias, "Accepting RSCN %x (%s)",
                     op, FCT_ELS_NAME(op));
                 rscn_req_size = ICMD_TO_ELS(icmd)->els_req_size;

@@ -2066,13 +2066,13 @@
 
                 if (dq) {
                         fct_i_cmd_t *c = (*ppcmd)->icmd_next;
 
                         if ((*ppcmd)->icmd_flags & ICMD_SESSION_AFFECTING)
-                                atomic_add_16(&irp->irp_sa_elses_count, -1);
+                                atomic_dec_16(&irp->irp_sa_elses_count);
                         else
-                                atomic_add_16(&irp->irp_nsa_elses_count, -1);
+                                atomic_dec_16(&irp->irp_nsa_elses_count);
                         (*ppcmd)->icmd_next = cmd_to_abort;
                         cmd_to_abort = *ppcmd;
                         *ppcmd = c;
                 } else {
                         ppcmd = &((*ppcmd)->icmd_next);

@@ -2123,11 +2123,11 @@
         } else if (cmd->cmd_type == FCT_CMD_SOL_ELS) {
                 fct_status_t s;
                 fct_local_port_t *port = iport->iport_port;
 
                 fct_dequeue_els(irp);
-                atomic_add_16(&irp->irp_nsa_elses_count, -1);
+                atomic_dec_16(&irp->irp_nsa_elses_count);
                 atomic_or_32(&icmd->icmd_flags, ICMD_KNOWN_TO_FCA);
                 if ((s = port->port_send_cmd(cmd)) != FCT_SUCCESS) {
                         atomic_and_32(&icmd->icmd_flags, ~ICMD_KNOWN_TO_FCA);
                         fct_queue_cmd_for_termination(cmd, s);
                         stmf_trace(iport->iport_alias, "Solicited els "

@@ -2177,11 +2177,11 @@
                 bcopy(els->els_resp_payload + 28, irp->irp_rp->rp_nwwn, 8);
 
                 stmf_wwn_to_devid_desc((scsi_devid_desc_t *)irp->irp_id,
                     irp->irp_rp->rp_pwwn, PROTOCOL_FIBRE_CHANNEL);
                 atomic_or_32(&irp->irp_flags, IRP_PLOGI_DONE);
-                atomic_add_32(&iport->iport_nrps_login, 1);
+                atomic_inc_32(&iport->iport_nrps_login);
                 if (irp->irp_deregister_timer) {
                         irp->irp_deregister_timer = 0;
                         irp->irp_dereg_count = 0;
                 }
         }

@@ -2223,11 +2223,11 @@
                         break;
                 }
                 iport->iport_cached_cmdlist = icmd->icmd_next;
                 iport->iport_cached_ncmds--;
                 mutex_exit(&iport->iport_cached_cmd_lock);
-                atomic_add_32(&iport->iport_total_alloced_ncmds, -1);
+                atomic_dec_32(&iport->iport_total_alloced_ncmds);
                 fct_free(icmd->icmd_cmd);
         }
         mutex_enter(&iport->iport_worker_lock);
         return (DISC_ACTION_RESCAN);
 }

@@ -2372,11 +2372,11 @@
                 }
         }
         rw_exit(&irp->irp_lock);
         rw_exit(&iport->iport_lock);
 
-        atomic_add_16(&irp->irp_nonfcp_xchg_count, 1);
+        atomic_inc_16(&irp->irp_nonfcp_xchg_count);
         atomic_or_32(&icmd->icmd_flags, ICMD_KNOWN_TO_FCA);
         icmd->icmd_start_time = ddi_get_lbolt();
         ret = iport->iport_port->port_send_cmd(cmd);
         if (ret != FCT_SUCCESS) {
                 atomic_and_32(&icmd->icmd_flags, ~ICMD_KNOWN_TO_FCA);

@@ -2761,11 +2761,11 @@
 do {                                                                    \
         ct_cmd = fct_create_solct(port, irp->irp_rp, NS_GID_PN,         \
             fct_gid_cb);                                                \
         if (ct_cmd) {                                                   \
                 uint32_t cnt;                                           \
-                cnt = atomic_add_32_nv(&irp->irp_rscn_counter, 1);      \
+                cnt = atomic_inc_32_nv(&irp->irp_rscn_counter); \
                 CMD_TO_ICMD(ct_cmd)->icmd_cb_private =                  \
                     INT2PTR(cnt, void *);                               \
                 irp->irp_flags |= IRP_RSCN_QUEUED;                      \
                 fct_post_to_solcmd_queue(port, ct_cmd);                 \
         }                                                               \