Lines Matching refs:timewait_info

271 	struct cm_timewait_info *timewait_info;  member
737 *timewait_info) in cm_insert_remote_id() argument
742 __be64 remote_ca_guid = timewait_info->remote_ca_guid; in cm_insert_remote_id()
743 __be32 remote_id = timewait_info->work.remote_id; in cm_insert_remote_id()
760 timewait_info->inserted_remote_id = 1; in cm_insert_remote_id()
761 rb_link_node(&timewait_info->remote_id_node, parent, link); in cm_insert_remote_id()
762 rb_insert_color(&timewait_info->remote_id_node, &cm.remote_id_table); in cm_insert_remote_id()
770 struct cm_timewait_info *timewait_info; in cm_find_remote_id() local
773 timewait_info = rb_entry(node, struct cm_timewait_info, in cm_find_remote_id()
775 if (be32_lt(remote_id, timewait_info->work.remote_id)) in cm_find_remote_id()
777 else if (be32_gt(remote_id, timewait_info->work.remote_id)) in cm_find_remote_id()
779 else if (be64_lt(remote_ca_guid, timewait_info->remote_ca_guid)) in cm_find_remote_id()
781 else if (be64_gt(remote_ca_guid, timewait_info->remote_ca_guid)) in cm_find_remote_id()
784 return timewait_info; in cm_find_remote_id()
790 *timewait_info) in cm_insert_remote_qpn() argument
795 __be64 remote_ca_guid = timewait_info->remote_ca_guid; in cm_insert_remote_qpn()
796 __be32 remote_qpn = timewait_info->remote_qpn; in cm_insert_remote_qpn()
813 timewait_info->inserted_remote_qp = 1; in cm_insert_remote_qpn()
814 rb_link_node(&timewait_info->remote_qp_node, parent, link); in cm_insert_remote_qpn()
815 rb_insert_color(&timewait_info->remote_qp_node, &cm.remote_qp_table); in cm_insert_remote_qpn()
942 static void cm_cleanup_timewait(struct cm_timewait_info *timewait_info) in cm_cleanup_timewait() argument
944 if (timewait_info->inserted_remote_id) { in cm_cleanup_timewait()
945 rb_erase(&timewait_info->remote_id_node, &cm.remote_id_table); in cm_cleanup_timewait()
946 timewait_info->inserted_remote_id = 0; in cm_cleanup_timewait()
949 if (timewait_info->inserted_remote_qp) { in cm_cleanup_timewait()
950 rb_erase(&timewait_info->remote_qp_node, &cm.remote_qp_table); in cm_cleanup_timewait()
951 timewait_info->inserted_remote_qp = 0; in cm_cleanup_timewait()
957 struct cm_timewait_info *timewait_info; in cm_create_timewait_info() local
959 timewait_info = kzalloc(sizeof *timewait_info, GFP_KERNEL); in cm_create_timewait_info()
960 if (!timewait_info) in cm_create_timewait_info()
963 timewait_info->work.local_id = local_id; in cm_create_timewait_info()
964 INIT_DELAYED_WORK(&timewait_info->work.work, cm_work_handler); in cm_create_timewait_info()
965 timewait_info->work.cm_event.event = IB_CM_TIMEWAIT_EXIT; in cm_create_timewait_info()
966 return timewait_info; in cm_create_timewait_info()
980 cm_cleanup_timewait(cm_id_priv->timewait_info); in cm_enter_timewait()
981 list_add_tail(&cm_id_priv->timewait_info->list, &cm.timewait_list); in cm_enter_timewait()
995 queue_delayed_work(cm.wq, &cm_id_priv->timewait_info->work.work, in cm_enter_timewait()
999 cm_id_priv->timewait_info = NULL; in cm_enter_timewait()
1007 if (cm_id_priv->timewait_info) { in cm_reset_to_idle()
1009 cm_cleanup_timewait(cm_id_priv->timewait_info); in cm_reset_to_idle()
1011 kfree(cm_id_priv->timewait_info); in cm_reset_to_idle()
1012 cm_id_priv->timewait_info = NULL; in cm_reset_to_idle()
1433 cm_id_priv->timewait_info = cm_create_timewait_info(cm_id_priv-> in ib_send_cm_req()
1435 if (IS_ERR(cm_id_priv->timewait_info)) { in ib_send_cm_req()
1436 ret = PTR_ERR(cm_id_priv->timewait_info); in ib_send_cm_req()
1490 error1: kfree(cm_id_priv->timewait_info); in ib_send_cm_req()
1851 struct cm_timewait_info *timewait_info; in cm_match_req() local
1859 timewait_info = cm_insert_remote_id(cm_id_priv->timewait_info); in cm_match_req()
1860 if (timewait_info) { in cm_match_req()
1861 cur_cm_id_priv = cm_get_id(timewait_info->work.local_id, in cm_match_req()
1862 timewait_info->work.remote_id); in cm_match_req()
1872 timewait_info = cm_insert_remote_qpn(cm_id_priv->timewait_info); in cm_match_req()
1873 if (timewait_info) { in cm_match_req()
1874 cm_cleanup_timewait(cm_id_priv->timewait_info); in cm_match_req()
1875 cur_cm_id_priv = cm_get_id(timewait_info->work.local_id, in cm_match_req()
1876 timewait_info->work.remote_id); in cm_match_req()
1894 cm_cleanup_timewait(cm_id_priv->timewait_info); in cm_match_req()
1960 cm_id_priv->timewait_info = cm_create_timewait_info(cm_id_priv-> in cm_req_handler()
1962 if (IS_ERR(cm_id_priv->timewait_info)) { in cm_req_handler()
1963 ret = PTR_ERR(cm_id_priv->timewait_info); in cm_req_handler()
1966 cm_id_priv->timewait_info->work.remote_id = req_msg->local_comm_id; in cm_req_handler()
1967 cm_id_priv->timewait_info->remote_ca_guid = req_msg->local_ca_guid; in cm_req_handler()
1968 cm_id_priv->timewait_info->remote_qpn = cm_req_get_local_qpn(req_msg); in cm_req_handler()
2060 kfree(cm_id_priv->timewait_info); in cm_req_handler()
2284 struct cm_timewait_info *timewait_info; in cm_rep_handler() local
2312 cm_id_priv->timewait_info->work.remote_id = rep_msg->local_comm_id; in cm_rep_handler()
2313 cm_id_priv->timewait_info->remote_ca_guid = rep_msg->local_ca_guid; in cm_rep_handler()
2314 cm_id_priv->timewait_info->remote_qpn = cm_rep_get_qpn(rep_msg, cm_id_priv->qp_type); in cm_rep_handler()
2318 if (cm_insert_remote_id(cm_id_priv->timewait_info)) { in cm_rep_handler()
2327 timewait_info = cm_insert_remote_qpn(cm_id_priv->timewait_info); in cm_rep_handler()
2328 if (timewait_info) { in cm_rep_handler()
2329 rb_erase(&cm_id_priv->timewait_info->remote_id_node, in cm_rep_handler()
2331 cm_id_priv->timewait_info->inserted_remote_id = 0; in cm_rep_handler()
2332 cur_cm_id_priv = cm_get_id(timewait_info->work.local_id, in cm_rep_handler()
2333 timewait_info->work.remote_id); in cm_rep_handler()
2813 struct cm_timewait_info *timewait_info; in cm_acquire_rejected_id() local
2821 timewait_info = cm_find_remote_id( *((__be64 *) rej_msg->ari), in cm_acquire_rejected_id()
2823 if (!timewait_info) { in cm_acquire_rejected_id()
2828 (timewait_info->work.local_id ^ in cm_acquire_rejected_id()
3433 struct cm_timewait_info *timewait_info; in cm_timewait_handler() local
3437 timewait_info = (struct cm_timewait_info *)work; in cm_timewait_handler()
3439 list_del(&timewait_info->list); in cm_timewait_handler()
3442 cm_id_priv = cm_acquire_id(timewait_info->work.local_id, in cm_timewait_handler()
3443 timewait_info->work.remote_id); in cm_timewait_handler()
3449 cm_id_priv->remote_qpn != timewait_info->remote_qpn) { in cm_timewait_handler()
4545 struct cm_timewait_info *timewait_info, *tmp; in ib_cm_cleanup() local
4548 list_for_each_entry(timewait_info, &cm.timewait_list, list) in ib_cm_cleanup()
4549 cancel_delayed_work(&timewait_info->work.work); in ib_cm_cleanup()
4555 list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) { in ib_cm_cleanup()
4556 list_del(&timewait_info->list); in ib_cm_cleanup()
4557 kfree(timewait_info); in ib_cm_cleanup()