Lines Matching refs:cm_id_priv
216 static void ib_cm_free_id(struct cm_id_private *cm_id_priv) in ib_cm_free_id() argument
218 pthread_cond_destroy(&cm_id_priv->cond); in ib_cm_free_id()
219 pthread_mutex_destroy(&cm_id_priv->mut); in ib_cm_free_id()
220 free(cm_id_priv); in ib_cm_free_id()
226 struct cm_id_private *cm_id_priv; in ib_cm_alloc_id() local
228 cm_id_priv = malloc(sizeof *cm_id_priv); in ib_cm_alloc_id()
229 if (!cm_id_priv) in ib_cm_alloc_id()
232 memset(cm_id_priv, 0, sizeof *cm_id_priv); in ib_cm_alloc_id()
233 cm_id_priv->id.device = device; in ib_cm_alloc_id()
234 cm_id_priv->id.context = context; in ib_cm_alloc_id()
235 if (pthread_mutex_init(&cm_id_priv->mut, NULL)) in ib_cm_alloc_id()
237 if (pthread_cond_init(&cm_id_priv->cond, NULL)) in ib_cm_alloc_id()
240 return cm_id_priv; in ib_cm_alloc_id()
242 err: ib_cm_free_id(cm_id_priv); in ib_cm_alloc_id()
251 struct cm_id_private *cm_id_priv; in ib_cm_create_id() local
256 cm_id_priv = ib_cm_alloc_id(device, context); in ib_cm_create_id()
257 if (!cm_id_priv) in ib_cm_create_id()
261 cmd->uid = (uintptr_t) cm_id_priv; in ib_cm_create_id()
269 cm_id_priv->id.handle = resp->id; in ib_cm_create_id()
270 *cm_id = &cm_id_priv->id; in ib_cm_create_id()
273 err: ib_cm_free_id(cm_id_priv); in ib_cm_create_id()
281 struct cm_id_private *cm_id_priv; in ib_cm_destroy_id() local
295 cm_id_priv = container_of(cm_id, struct cm_id_private, id); in ib_cm_destroy_id()
297 pthread_mutex_lock(&cm_id_priv->mut); in ib_cm_destroy_id()
298 while (cm_id_priv->events_completed < resp->events_reported) in ib_cm_destroy_id()
299 pthread_cond_wait(&cm_id_priv->cond, &cm_id_priv->mut); in ib_cm_destroy_id()
300 pthread_mutex_unlock(&cm_id_priv->mut); in ib_cm_destroy_id()
302 ib_cm_free_id(cm_id_priv); in ib_cm_destroy_id()
800 struct cm_id_private *cm_id_priv; in ib_cm_get_event() local
892 cm_id_priv = ib_cm_alloc_id(evt->cm_id->device, in ib_cm_get_event()
894 if (!cm_id_priv) { in ib_cm_get_event()
898 cm_id_priv->id.handle = resp->id; in ib_cm_get_event()
899 evt->cm_id = &cm_id_priv->id; in ib_cm_get_event()
930 cm_id_priv = ib_cm_alloc_id(evt->cm_id->device, in ib_cm_get_event()
932 if (!cm_id_priv) { in ib_cm_get_event()
936 cm_id_priv->id.handle = resp->id; in ib_cm_get_event()
937 evt->cm_id = &cm_id_priv->id; in ib_cm_get_event()
977 struct cm_id_private *cm_id_priv; in ib_cm_ack_event() local
985 cm_id_priv = container_of(event->cm_id, struct cm_id_private, id); in ib_cm_ack_event()
989 cm_id_priv = container_of(event->param.req_rcvd.listen_id, in ib_cm_ack_event()
1007 cm_id_priv = container_of(event->param.sidr_req_rcvd.listen_id, in ib_cm_ack_event()
1017 pthread_mutex_lock(&cm_id_priv->mut); in ib_cm_ack_event()
1018 cm_id_priv->events_completed++; in ib_cm_ack_event()
1019 pthread_cond_signal(&cm_id_priv->cond); in ib_cm_ack_event()
1020 pthread_mutex_unlock(&cm_id_priv->mut); in ib_cm_ack_event()