Lines Matching refs:cm_id

97 	struct iwcm_id_private *cm_id;  member
155 list_add(&work->free_list, &work->cm_id->work_free_list); in put_work()
177 work->cm_id = cm_id_priv; in alloc_work_entries()
222 static void add_ref(struct iw_cm_id *cm_id) in add_ref() argument
225 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in add_ref()
229 static void rem_ref(struct iw_cm_id *cm_id) in rem_ref() argument
233 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in rem_ref()
238 static int cm_event_handler(struct iw_cm_id *cm_id, struct iw_cm_event *event);
305 int iw_cm_disconnect(struct iw_cm_id *cm_id, int abrupt) in iw_cm_disconnect() argument
312 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_disconnect()
372 static void destroy_cm_id(struct iw_cm_id *cm_id) in destroy_cm_id() argument
378 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in destroy_cm_id()
401 cm_id->device->ops.iw_destroy_listen(cm_id); in destroy_cm_id()
424 cm_id->device->ops.iw_reject(cm_id, NULL, 0); in destroy_cm_id()
437 if (cm_id->mapped) { in destroy_cm_id()
438 iwpm_remove_mapinfo(&cm_id->local_addr, &cm_id->m_local_addr); in destroy_cm_id()
439 iwpm_remove_mapping(&cm_id->local_addr, RDMA_NL_IWCM); in destroy_cm_id()
451 void iw_destroy_cm_id(struct iw_cm_id *cm_id) in iw_destroy_cm_id() argument
453 destroy_cm_id(cm_id); in iw_destroy_cm_id()
506 static int iw_cm_map(struct iw_cm_id *cm_id, bool active) in iw_cm_map() argument
508 const char *devname = dev_name(&cm_id->device->dev); in iw_cm_map()
509 const char *ifname = cm_id->device->iw_ifname; in iw_cm_map()
518 cm_id->m_local_addr = cm_id->local_addr; in iw_cm_map()
519 cm_id->m_remote_addr = cm_id->remote_addr; in iw_cm_map()
528 cm_id->mapped = true; in iw_cm_map()
529 pm_msg.loc_addr = cm_id->local_addr; in iw_cm_map()
530 pm_msg.rem_addr = cm_id->remote_addr; in iw_cm_map()
531 pm_msg.flags = (cm_id->device->iw_driver_flags & IW_F_NO_PORT_MAP) ? in iw_cm_map()
540 cm_id->m_local_addr = pm_msg.mapped_loc_addr; in iw_cm_map()
542 cm_id->m_remote_addr = pm_msg.mapped_rem_addr; in iw_cm_map()
544 &cm_id->remote_addr, in iw_cm_map()
545 &cm_id->m_remote_addr); in iw_cm_map()
549 return iwpm_create_mapinfo(&cm_id->local_addr, in iw_cm_map()
550 &cm_id->m_local_addr, in iw_cm_map()
560 int iw_cm_listen(struct iw_cm_id *cm_id, int backlog) in iw_cm_listen() argument
566 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_listen()
580 ret = iw_cm_map(cm_id, false); in iw_cm_listen()
582 ret = cm_id->device->ops.iw_create_listen(cm_id, in iw_cm_listen()
602 int iw_cm_reject(struct iw_cm_id *cm_id, in iw_cm_reject() argument
610 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_reject()
623 ret = cm_id->device->ops.iw_reject(cm_id, private_data, in iw_cm_reject()
640 int iw_cm_accept(struct iw_cm_id *cm_id, in iw_cm_accept() argument
648 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_accept()
659 qp = cm_id->device->ops.iw_get_qp(cm_id->device, iw_param->qpn); in iw_cm_accept()
666 cm_id->device->ops.iw_add_ref(qp); in iw_cm_accept()
670 ret = cm_id->device->ops.iw_accept(cm_id, iw_param); in iw_cm_accept()
680 cm_id->device->ops.iw_rem_ref(qp); in iw_cm_accept()
696 int iw_cm_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *iw_param) in iw_cm_connect() argument
703 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_connect()
718 qp = cm_id->device->ops.iw_get_qp(cm_id->device, iw_param->qpn); in iw_cm_connect()
723 cm_id->device->ops.iw_add_ref(qp); in iw_cm_connect()
728 ret = iw_cm_map(cm_id, true); in iw_cm_connect()
730 ret = cm_id->device->ops.iw_connect(cm_id, iw_param); in iw_cm_connect()
741 cm_id->device->ops.iw_rem_ref(qp); in iw_cm_connect()
767 struct iw_cm_id *cm_id; in cm_conn_req_handler() local
777 cm_id = iw_create_cm_id(listen_id_priv->id.device, in cm_conn_req_handler()
781 if (IS_ERR(cm_id)) in cm_conn_req_handler()
784 cm_id->provider_data = iw_event->provider_data; in cm_conn_req_handler()
785 cm_id->m_local_addr = iw_event->local_addr; in cm_conn_req_handler()
786 cm_id->m_remote_addr = iw_event->remote_addr; in cm_conn_req_handler()
787 cm_id->local_addr = listen_id_priv->id.local_addr; in cm_conn_req_handler()
791 &cm_id->remote_addr, in cm_conn_req_handler()
794 cm_id->remote_addr = iw_event->remote_addr; in cm_conn_req_handler()
798 &cm_id->local_addr); in cm_conn_req_handler()
799 iw_event->local_addr = cm_id->local_addr; in cm_conn_req_handler()
800 iw_event->remote_addr = cm_id->remote_addr; in cm_conn_req_handler()
803 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in cm_conn_req_handler()
813 iw_cm_reject(cm_id, NULL, 0); in cm_conn_req_handler()
814 iw_destroy_cm_id(cm_id); in cm_conn_req_handler()
821 iw_cm_reject(cm_id, NULL, 0); in cm_conn_req_handler()
822 iw_destroy_cm_id(cm_id); in cm_conn_req_handler()
827 ret = cm_id->cm_handler(cm_id, iw_event); in cm_conn_req_handler()
829 iw_cm_reject(cm_id, NULL, 0); in cm_conn_req_handler()
830 iw_destroy_cm_id(cm_id); in cm_conn_req_handler()
1018 struct iwcm_id_private *cm_id_priv = work->cm_id; in cm_work_handler()
1064 static int cm_event_handler(struct iw_cm_id *cm_id, in cm_event_handler() argument
1072 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in cm_event_handler()
1082 work->cm_id = cm_id_priv; in cm_event_handler()
1156 int iw_cm_init_qp_attr(struct iw_cm_id *cm_id, in iw_cm_init_qp_attr() argument
1163 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_init_qp_attr()