Lines Matching defs:hca
76 eibnx_hca_t *hca;
117 * to the next HCA. Otherwise, queue it up in our hca list
119 if ((hca = eibnx_prepare_hca(hca_guids[i])) == NULL)
123 hca_tail->hc_next = hca;
125 hca_list = hca;
127 hca_tail = hca;
136 * Put the hca list in the state structure
835 eibnx_hca_t *hca;
846 * Remove the hca list from the state structure
855 * free the pd, close the hca handle and release the hca struct.
857 * back on the hca list and return failure.
859 for (hca = hca_list; hca; hca = hca_next) {
860 hca_next = hca->hc_next;
861 if (eibnx_cleanup_hca(hca) != ENX_E_SUCCESS) {
1142 eibnx_hca_t *hca;
1188 * We have all the information we want about this hca, create
1191 hca = kmem_zalloc(sizeof (eibnx_hca_t), KM_SLEEP);
1192 hca->hc_next = NULL;
1193 hca->hc_guid = hca_guid;
1194 hca->hc_hdl = hca_hdl;
1195 hca->hc_pd = pd_hdl;
1196 hca->hc_port = port_tail = NULL;
1213 hca->hc_port = port;
1222 if (hca->hc_port == NULL) {
1223 ENX_DPRINTF_ERR("all hca port queries failed for "
1225 (void) eibnx_cleanup_hca(hca);
1229 return (hca);
1233 eibnx_cleanup_hca(eibnx_hca_t *hca)
1239 for (port = hca->hc_port; port; port = port_next) {
1246 if ((ret = ibt_free_pd(hca->hc_hdl, hca->hc_pd)) != IBT_SUCCESS) {
1248 "failed, ret=%d", hca->hc_hdl, hca->hc_pd, ret);
1252 if ((ret = ibt_close_hca(hca->hc_hdl)) != IBT_SUCCESS) {
1254 "ret=%d", hca->hc_hdl, ret);
1258 kmem_free(hca, sizeof (eibnx_hca_t));