Lines Matching refs:cm_id
230 event->event, ch->cm_id, ch->sess_name, srpt_get_ch_state(ch)); in srpt_qp_event()
234 ib_cm_notify(ch->cm_id, event->event); in srpt_qp_event()
992 ret = ib_cm_init_qp_attr(ch->cm_id, &qp_attr, &attr_mask); in srpt_ch_qp_rtr()
1022 ret = ib_cm_init_qp_attr(ch->cm_id, &qp_attr, &attr_mask); in srpt_ch_qp_rts()
1789 srp_tsk->task_tag, srp_tsk->tag, ch->cm_id, ch->sess); in srpt_handle_tsk_mgmt()
2074 qp_init->cap.max_send_wr, ch->cm_id); in srpt_create_ch_ib()
2142 ib_send_cm_rej(ch->cm_id, IB_CM_REJ_NO_RESOURCES, NULL, 0, in __srpt_close_ch()
2146 if (ib_send_cm_dreq(ch->cm_id, NULL, 0) < 0) in __srpt_close_ch()
2203 static void srpt_drain_channel(struct ib_cm_id *cm_id) in srpt_drain_channel() argument
2212 sdev = cm_id->context; in srpt_drain_channel()
2216 if (ch->cm_id == cm_id) { in srpt_drain_channel()
2246 struct ib_cm_id *cm_id) in srpt_find_channel() argument
2257 if (ch->cm_id == cm_id) { in srpt_find_channel()
2302 ib_destroy_cm_id(ch->cm_id); in srpt_release_channel_work()
2353 static int srpt_cm_req_recv(struct ib_cm_id *cm_id, in srpt_cm_req_recv() argument
2357 struct srpt_device *sdev = cm_id->context; in srpt_cm_req_recv()
2427 && param->listen_id == ch->sport->sdev->cm_id in srpt_cm_req_recv()
2428 && ch->cm_id) { in srpt_cm_req_recv()
2439 ch->sess_name, ch->cm_id, ch_state); in srpt_cm_req_recv()
2477 ch->cm_id = cm_id; in srpt_cm_req_recv()
2547 ch->sess_name, ch->cm_id); in srpt_cm_req_recv()
2572 ret = ib_send_cm_rep(cm_id, rep_param); in srpt_cm_req_recv()
2609 ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED, NULL, 0, in srpt_cm_req_recv()
2620 static void srpt_cm_rej_recv(struct ib_cm_id *cm_id) in srpt_cm_rej_recv() argument
2622 pr_info("Received IB REJ for cm_id %p.\n", cm_id); in srpt_cm_rej_recv()
2623 srpt_drain_channel(cm_id); in srpt_cm_rej_recv()
2632 static void srpt_cm_rtu_recv(struct ib_cm_id *cm_id) in srpt_cm_rtu_recv() argument
2637 ch = srpt_find_channel(cm_id->context, cm_id); in srpt_cm_rtu_recv()
2655 static void srpt_cm_timewait_exit(struct ib_cm_id *cm_id) in srpt_cm_timewait_exit() argument
2657 pr_info("Received IB TimeWait exit for cm_id %p.\n", cm_id); in srpt_cm_timewait_exit()
2658 srpt_drain_channel(cm_id); in srpt_cm_timewait_exit()
2661 static void srpt_cm_rep_error(struct ib_cm_id *cm_id) in srpt_cm_rep_error() argument
2663 pr_info("Received IB REP error for cm_id %p.\n", cm_id); in srpt_cm_rep_error()
2664 srpt_drain_channel(cm_id); in srpt_cm_rep_error()
2670 static void srpt_cm_dreq_recv(struct ib_cm_id *cm_id) in srpt_cm_dreq_recv() argument
2676 ch = srpt_find_channel(cm_id->context, cm_id); in srpt_cm_dreq_recv()
2679 pr_debug("cm_id= %p ch->state= %d\n", cm_id, srpt_get_ch_state(ch)); in srpt_cm_dreq_recv()
2697 if (ib_send_cm_drep(ch->cm_id, NULL, 0) < 0) in srpt_cm_dreq_recv()
2707 static void srpt_cm_drep_recv(struct ib_cm_id *cm_id) in srpt_cm_drep_recv() argument
2709 pr_info("Received InfiniBand DREP message for cm_id %p.\n", cm_id); in srpt_cm_drep_recv()
2710 srpt_drain_channel(cm_id); in srpt_cm_drep_recv()
2723 static int srpt_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event) in srpt_cm_handler() argument
2730 ret = srpt_cm_req_recv(cm_id, &event->param.req_rcvd, in srpt_cm_handler()
2734 srpt_cm_rej_recv(cm_id); in srpt_cm_handler()
2738 srpt_cm_rtu_recv(cm_id); in srpt_cm_handler()
2741 srpt_cm_dreq_recv(cm_id); in srpt_cm_handler()
2744 srpt_cm_drep_recv(cm_id); in srpt_cm_handler()
2747 srpt_cm_timewait_exit(cm_id); in srpt_cm_handler()
2750 srpt_cm_rep_error(cm_id); in srpt_cm_handler()
3187 sdev->cm_id = ib_create_cm_id(device, srpt_cm_handler, sdev); in srpt_add_one()
3188 if (IS_ERR(sdev->cm_id)) in srpt_add_one()
3202 if (ib_cm_listen(sdev->cm_id, cpu_to_be64(srpt_service_guid), 0, NULL)) in srpt_add_one()
3260 ib_destroy_cm_id(sdev->cm_id); in srpt_add_one()
3297 ib_destroy_cm_id(sdev->cm_id); in srpt_remove_one()