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