|
@@ -534,6 +534,7 @@ static int mcast_rdma_event_fn (int events, int suck, void *context)
|
|
|
*/
|
|
*/
|
|
|
case RDMA_CM_EVENT_ADDR_RESOLVED:
|
|
case RDMA_CM_EVENT_ADDR_RESOLVED:
|
|
|
rdma_join_multicast (instance->mcast_cma_id, &instance->mcast_addr, instance);
|
|
rdma_join_multicast (instance->mcast_cma_id, &instance->mcast_addr, instance);
|
|
|
|
|
+ usleep(1000);
|
|
|
break;
|
|
break;
|
|
|
/*
|
|
/*
|
|
|
* occurs when the CM joins the multicast group
|
|
* occurs when the CM joins the multicast group
|
|
@@ -1027,6 +1028,12 @@ static int send_token_unbind (struct totemiba_instance *instance)
|
|
|
instance->totemiba_poll_handle,
|
|
instance->totemiba_poll_handle,
|
|
|
instance->send_token_channel->fd);
|
|
instance->send_token_channel->fd);
|
|
|
|
|
|
|
|
|
|
+ if(instance->send_token_ah)
|
|
|
|
|
+ {
|
|
|
|
|
+ ibv_destroy_ah(instance->send_token_ah);
|
|
|
|
|
+ instance->send_token_ah = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
rdma_destroy_qp (instance->send_token_cma_id);
|
|
rdma_destroy_qp (instance->send_token_cma_id);
|
|
|
ibv_destroy_cq (instance->send_token_send_cq);
|
|
ibv_destroy_cq (instance->send_token_send_cq);
|
|
|
ibv_destroy_cq (instance->send_token_recv_cq);
|
|
ibv_destroy_cq (instance->send_token_recv_cq);
|
|
@@ -1413,7 +1420,8 @@ int totemiba_token_send (
|
|
|
sge.lkey = send_buf->mr->lkey;
|
|
sge.lkey = send_buf->mr->lkey;
|
|
|
sge.addr = (uintptr_t)msg;
|
|
sge.addr = (uintptr_t)msg;
|
|
|
|
|
|
|
|
- res = ibv_post_send (instance->send_token_cma_id->qp, &send_wr, &failed_send_wr);
|
|
|
|
|
|
|
+ if(instance->send_token_ah != 0 && instance->send_token_bound)
|
|
|
|
|
+ res = ibv_post_send (instance->send_token_cma_id->qp, &send_wr, &failed_send_wr);
|
|
|
|
|
|
|
|
return (res);
|
|
return (res);
|
|
|
}
|
|
}
|