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;