@@ -354,16 +354,17 @@ DAT_RETURN dapls_ib_close_hca(IN DAPL_HCA * hca_ptr)
}
}
+ dapl_os_lock_destroy(&hca_ptr->ib_trans.lock);
+ dapl_os_lock_destroy(&hca_ptr->ib_trans.llock);
+ destroy_cr_pipe(hca_ptr); /* no longer need pipe */
+ ucm_service_destroy(hca_ptr);
+
if (hca_ptr->ib_hca_handle != IB_INVALID_HANDLE) {
if (ibv_close_device(hca_ptr->ib_hca_handle))
return (dapl_convert_errno(errno, "ib_close_device"));
hca_ptr->ib_hca_handle = IB_INVALID_HANDLE;
}
- dapl_os_lock_destroy(&hca_ptr->ib_trans.lock);
- dapl_os_lock_destroy(&hca_ptr->ib_trans.llock);
- destroy_cr_pipe(hca_ptr); /* no longer need pipe */
- ucm_service_destroy(hca_ptr);
return (DAT_SUCCESS);
}