Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*
*** 1610,1623 ****
ndi_dev_is_persistent_node(dip) &&
retire_prevents_attach == 1) {
rv = DDI_FAILURE;
break;
}
! atomic_add_long(&devinfo_attach_detach, 1);
if ((rv = attach_node(dip)) == DDI_SUCCESS)
i_ddi_set_node_state(dip, DS_ATTACHED);
! atomic_add_long(&devinfo_attach_detach, -1);
break;
case DS_ATTACHED:
if ((rv = postattach_node(dip)) == DDI_SUCCESS)
i_ddi_set_node_state(dip, DS_READY);
break;
--- 1610,1623 ----
ndi_dev_is_persistent_node(dip) &&
retire_prevents_attach == 1) {
rv = DDI_FAILURE;
break;
}
! atomic_inc_ulong(&devinfo_attach_detach);
if ((rv = attach_node(dip)) == DDI_SUCCESS)
i_ddi_set_node_state(dip, DS_ATTACHED);
! atomic_dec_ulong(&devinfo_attach_detach);
break;
case DS_ATTACHED:
if ((rv = postattach_node(dip)) == DDI_SUCCESS)
i_ddi_set_node_state(dip, DS_READY);
break;
*** 1679,1689 ****
case DS_PROBED:
if ((rv = unprobe_node(dip)) == DDI_SUCCESS)
i_ddi_set_node_state(dip, DS_INITIALIZED);
break;
case DS_ATTACHED:
! atomic_add_long(&devinfo_attach_detach, 1);
mutex_enter(&(DEVI(dip)->devi_lock));
DEVI_SET_DETACHING(dip);
mutex_exit(&(DEVI(dip)->devi_lock));
--- 1679,1689 ----
case DS_PROBED:
if ((rv = unprobe_node(dip)) == DDI_SUCCESS)
i_ddi_set_node_state(dip, DS_INITIALIZED);
break;
case DS_ATTACHED:
! atomic_inc_ulong(&devinfo_attach_detach);
mutex_enter(&(DEVI(dip)->devi_lock));
DEVI_SET_DETACHING(dip);
mutex_exit(&(DEVI(dip)->devi_lock));
*** 1694,1704 ****
mutex_enter(&(DEVI(dip)->devi_lock));
DEVI_CLR_DETACHING(dip);
mutex_exit(&(DEVI(dip)->devi_lock));
! atomic_add_long(&devinfo_attach_detach, -1);
break;
case DS_READY:
if ((rv = predetach_node(dip, flag)) == DDI_SUCCESS)
i_ddi_set_node_state(dip, DS_ATTACHED);
break;
--- 1694,1704 ----
mutex_enter(&(DEVI(dip)->devi_lock));
DEVI_CLR_DETACHING(dip);
mutex_exit(&(DEVI(dip)->devi_lock));
! atomic_dec_ulong(&devinfo_attach_detach);
break;
case DS_READY:
if ((rv = predetach_node(dip, flag)) == DDI_SUCCESS)
i_ddi_set_node_state(dip, DS_ATTACHED);
break;