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

@@ -1160,11 +1160,11 @@
                 iport->iport_alias = NULL;
         }
         stmf_wwn_to_devid_desc((scsi_devid_desc_t *)iport->iport_id,
             port->port_pwwn, PROTOCOL_FIBRE_CHANNEL);
         (void) snprintf(taskq_name, sizeof (taskq_name), "stmf_fct_taskq_%d",
-            atomic_add_32_nv(&taskq_cntr, 1));
+            atomic_inc_32_nv(&taskq_cntr));
         if ((iport->iport_worker_taskq = ddi_taskq_create(NULL,
             taskq_name, 1, TASKQ_DEFAULTPRI, 0)) == NULL) {
                 return (FCT_FAILURE);
         }
         mutex_init(&iport->iport_worker_lock, NULL, MUTEX_DRIVER, NULL);

@@ -1438,11 +1438,11 @@
         irp_next = iport->iport_rp_tb[hash_key];
         irp_last = NULL;
         while (irp_next != NULL) {
                 if (irp == irp_next) {
                         if (irp->irp_flags & IRP_PLOGI_DONE) {
-                                atomic_add_32(&iport->iport_nrps_login, -1);
+                                atomic_dec_32(&iport->iport_nrps_login);
                         }
                         atomic_and_32(&irp->irp_flags,
                             ~(IRP_PLOGI_DONE | IRP_PRLI_DONE));
                         break;
                 }

@@ -1676,11 +1676,11 @@
                 }
 
                 icmd = (fct_i_cmd_t *)cmd->cmd_fct_private;
                 icmd->icmd_next = NULL;
                 cmd->cmd_port = port;
-                atomic_add_32(&iport->iport_total_alloced_ncmds, 1);
+                atomic_inc_32(&iport->iport_total_alloced_ncmds);
         }
 
         /*
          * The accuracy of iport_max_active_ncmds is not important
          */

@@ -1699,11 +1699,11 @@
                 stmf_trace(iport->iport_alias, "Ran out of xchg resources");
                 cmd->cmd_handle = 0;
                 fct_cmd_free(cmd);
                 return (NULL);
         }
-        atomic_add_16(&irp->irp_fcp_xchg_count, 1);
+        atomic_inc_16(&irp->irp_fcp_xchg_count);
         cmd->cmd_rp = rp;
         icmd->icmd_flags |= ICMD_IN_TRANSITION | ICMD_KNOWN_TO_FCA;
         rw_exit(&irp->irp_lock);
         rw_exit(&iport->iport_lock);
 

@@ -1824,19 +1824,19 @@
 
         icmd->icmd_start_time = ddi_get_lbolt();
 
         rw_enter(&irp->irp_lock, RW_WRITER);
         atomic_or_32(&icmd->icmd_flags, ICMD_IMPLICIT_CMD_HAS_RESOURCE);
-        atomic_add_16(&irp->irp_nonfcp_xchg_count, 1);
-        atomic_add_16(&irp->irp_sa_elses_count, 1);
+        atomic_inc_16(&irp->irp_nonfcp_xchg_count);
+        atomic_inc_16(&irp->irp_sa_elses_count);
         /*
          * An implicit LOGO can also be posted to a irp where a PLOGI might
          * be in process. That PLOGI will reset this flag and decrement the
          * iport_nrps_login counter.
          */
         if (irp->irp_flags & IRP_PLOGI_DONE) {
-                atomic_add_32(&iport->iport_nrps_login, -1);
+                atomic_dec_32(&iport->iport_nrps_login);
         }
         atomic_and_32(&irp->irp_flags, ~(IRP_PLOGI_DONE | IRP_PRLI_DONE));
         atomic_or_32(&icmd->icmd_flags, ICMD_SESSION_AFFECTING);
         fct_post_to_discovery_queue(iport, irp, icmd);
         rw_exit(&irp->irp_lock);

@@ -1863,11 +1863,11 @@
                  */
                 new = ((old + (0x10000)) & 0xFFFF0000);
                 new |= iport->iport_cmd_slots[cmd_slot].slot_next;
         } while (atomic_cas_32(&iport->iport_next_free_slot, old, new) != old);
 
-        atomic_add_16(&iport->iport_nslots_free, -1);
+        atomic_dec_16(&iport->iport_nslots_free);
         iport->iport_cmd_slots[cmd_slot].slot_cmd = icmd;
         cmd->cmd_handle = (uint32_t)cmd_slot | 0x80000000 |
             (((uint32_t)(iport->iport_cmd_slots[cmd_slot].slot_uniq_cntr))
             << 24);
         return (cmd_slot);

@@ -2070,30 +2070,30 @@
                         new = (old + 0x10000) & 0xFFFF0000;
                         new |= slot->slot_no;
                 } while (atomic_cas_32(&iport->iport_next_free_slot,
                     old, new) != old);
                 cmd->cmd_handle = 0;
-                atomic_add_16(&iport->iport_nslots_free, 1);
+                atomic_inc_16(&iport->iport_nslots_free);
                 if (cmd->cmd_rp) {
                         irp = (fct_i_remote_port_t *)
                             cmd->cmd_rp->rp_fct_private;
                         if (cmd->cmd_type == FCT_CMD_FCP_XCHG)
-                                atomic_add_16(&irp->irp_fcp_xchg_count, -1);
+                                atomic_dec_16(&irp->irp_fcp_xchg_count);
                         else
-                                atomic_add_16(&irp->irp_nonfcp_xchg_count, -1);
+                                atomic_dec_16(&irp->irp_nonfcp_xchg_count);
                 }
                 rw_exit(&iport->iport_lock);
         } else if ((icmd->icmd_flags & ICMD_IMPLICIT) &&
             (icmd->icmd_flags & ICMD_IMPLICIT_CMD_HAS_RESOURCE)) {
                 /* for implicit cmd, no cmd slot is used */
                 if (cmd->cmd_rp) {
                         irp = (fct_i_remote_port_t *)
                             cmd->cmd_rp->rp_fct_private;
                         if (cmd->cmd_type == FCT_CMD_FCP_XCHG)
-                                atomic_add_16(&irp->irp_fcp_xchg_count, -1);
+                                atomic_dec_16(&irp->irp_fcp_xchg_count);
                         else
-                                atomic_add_16(&irp->irp_nonfcp_xchg_count, -1);
+                                atomic_dec_16(&irp->irp_nonfcp_xchg_count);
                 }
         }
 
         if (do_abts_acc) {
                 fct_cmd_t *lcmd = cmd->cmd_link;

@@ -2124,11 +2124,11 @@
                         icmd->icmd_next = iport->iport_cached_cmdlist;
                         iport->iport_cached_cmdlist = icmd;
                         iport->iport_cached_ncmds++;
                         mutex_exit(&iport->iport_cached_cmd_lock);
                 } else {
-                        atomic_add_32(&iport->iport_total_alloced_ncmds, -1);
+                        atomic_dec_32(&iport->iport_total_alloced_ncmds);
                         fct_free(cmd);
                 }
         } else {
                 fct_free(cmd);
         }