Lines Matching refs:cm_id

97 	struct iwcm_id_private *cm_id;  member
156 list_add(&work->free_list, &work->cm_id->work_free_list); in put_work()
180 work->cm_id = cm_id_priv; in alloc_work_entries()
224 static void add_ref(struct iw_cm_id *cm_id) in add_ref() argument
227 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in add_ref()
231 static void rem_ref(struct iw_cm_id *cm_id) in rem_ref() argument
235 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in rem_ref()
240 static int cm_event_handler(struct iw_cm_id *cm_id, struct iw_cm_event *event);
307 int iw_cm_disconnect(struct iw_cm_id *cm_id, int abrupt) in iw_cm_disconnect() argument
314 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_disconnect()
373 static void destroy_cm_id(struct iw_cm_id *cm_id) in destroy_cm_id() argument
379 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in destroy_cm_id()
402 cm_id->device->ops.iw_destroy_listen(cm_id); in destroy_cm_id()
425 cm_id->device->ops.iw_reject(cm_id, NULL, 0); in destroy_cm_id()
438 if (cm_id->mapped) { in destroy_cm_id()
439 iwpm_remove_mapinfo(&cm_id->local_addr, &cm_id->m_local_addr); in destroy_cm_id()
440 iwpm_remove_mapping(&cm_id->local_addr, RDMA_NL_IWCM); in destroy_cm_id()
449 void iw_destroy_cm_id(struct iw_cm_id *cm_id) in iw_destroy_cm_id() argument
453 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_destroy_cm_id()
454 destroy_cm_id(cm_id); in iw_destroy_cm_id()
510 static int iw_cm_map(struct iw_cm_id *cm_id, bool active) in iw_cm_map() argument
512 const char *devname = dev_name(&cm_id->device->dev); in iw_cm_map()
513 const char *ifname = cm_id->device->iw_ifname; in iw_cm_map()
522 cm_id->m_local_addr = cm_id->local_addr; in iw_cm_map()
523 cm_id->m_remote_addr = cm_id->remote_addr; in iw_cm_map()
532 cm_id->mapped = true; in iw_cm_map()
533 pm_msg.loc_addr = cm_id->local_addr; in iw_cm_map()
534 pm_msg.rem_addr = cm_id->remote_addr; in iw_cm_map()
535 pm_msg.flags = (cm_id->device->iw_driver_flags & IW_F_NO_PORT_MAP) ? in iw_cm_map()
544 cm_id->m_local_addr = pm_msg.mapped_loc_addr; in iw_cm_map()
546 cm_id->m_remote_addr = pm_msg.mapped_rem_addr; in iw_cm_map()
548 &cm_id->remote_addr, in iw_cm_map()
549 &cm_id->m_remote_addr); in iw_cm_map()
553 return iwpm_create_mapinfo(&cm_id->local_addr, in iw_cm_map()
554 &cm_id->m_local_addr, in iw_cm_map()
564 int iw_cm_listen(struct iw_cm_id *cm_id, int backlog) in iw_cm_listen() argument
570 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_listen()
584 ret = iw_cm_map(cm_id, false); in iw_cm_listen()
586 ret = cm_id->device->ops.iw_create_listen(cm_id, in iw_cm_listen()
606 int iw_cm_reject(struct iw_cm_id *cm_id, in iw_cm_reject() argument
614 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_reject()
627 ret = cm_id->device->ops.iw_reject(cm_id, private_data, in iw_cm_reject()
644 int iw_cm_accept(struct iw_cm_id *cm_id, in iw_cm_accept() argument
652 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_accept()
663 qp = cm_id->device->ops.iw_get_qp(cm_id->device, iw_param->qpn); in iw_cm_accept()
670 cm_id->device->ops.iw_add_ref(qp); in iw_cm_accept()
674 ret = cm_id->device->ops.iw_accept(cm_id, iw_param); in iw_cm_accept()
684 cm_id->device->ops.iw_rem_ref(qp); in iw_cm_accept()
700 int iw_cm_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *iw_param) in iw_cm_connect() argument
707 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_connect()
722 qp = cm_id->device->ops.iw_get_qp(cm_id->device, iw_param->qpn); in iw_cm_connect()
727 cm_id->device->ops.iw_add_ref(qp); in iw_cm_connect()
732 ret = iw_cm_map(cm_id, true); in iw_cm_connect()
734 ret = cm_id->device->ops.iw_connect(cm_id, iw_param); in iw_cm_connect()
745 cm_id->device->ops.iw_rem_ref(qp); in iw_cm_connect()
771 struct iw_cm_id *cm_id; in cm_conn_req_handler() local
781 cm_id = iw_create_cm_id(listen_id_priv->id.device, in cm_conn_req_handler()
785 if (IS_ERR(cm_id)) in cm_conn_req_handler()
788 cm_id->provider_data = iw_event->provider_data; in cm_conn_req_handler()
789 cm_id->m_local_addr = iw_event->local_addr; in cm_conn_req_handler()
790 cm_id->m_remote_addr = iw_event->remote_addr; in cm_conn_req_handler()
791 cm_id->local_addr = listen_id_priv->id.local_addr; in cm_conn_req_handler()
795 &cm_id->remote_addr, in cm_conn_req_handler()
798 cm_id->remote_addr = iw_event->remote_addr; in cm_conn_req_handler()
802 &cm_id->local_addr); in cm_conn_req_handler()
803 iw_event->local_addr = cm_id->local_addr; in cm_conn_req_handler()
804 iw_event->remote_addr = cm_id->remote_addr; in cm_conn_req_handler()
807 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in cm_conn_req_handler()
817 iw_cm_reject(cm_id, NULL, 0); in cm_conn_req_handler()
818 iw_destroy_cm_id(cm_id); in cm_conn_req_handler()
825 iw_cm_reject(cm_id, NULL, 0); in cm_conn_req_handler()
826 iw_destroy_cm_id(cm_id); in cm_conn_req_handler()
831 ret = cm_id->cm_handler(cm_id, iw_event); in cm_conn_req_handler()
833 iw_cm_reject(cm_id, NULL, 0); in cm_conn_req_handler()
834 iw_destroy_cm_id(cm_id); in cm_conn_req_handler()
1022 struct iwcm_id_private *cm_id_priv = work->cm_id; in cm_work_handler()
1065 static int cm_event_handler(struct iw_cm_id *cm_id, in cm_event_handler() argument
1073 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in cm_event_handler()
1083 work->cm_id = cm_id_priv; in cm_event_handler()
1154 int iw_cm_init_qp_attr(struct iw_cm_id *cm_id, in iw_cm_init_qp_attr() argument
1161 cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); in iw_cm_init_qp_attr()