Lines Matching refs:cm_core

250 irdma_timer_list_prep(struct irdma_cm_core *cm_core,  in irdma_timer_list_prep()  argument
256 HASH_FOR_EACH_RCU(cm_core->cm_hash_tbl, bkt, cm_node, list) { in irdma_timer_list_prep()
641 sqbuf = cm_node->cm_core->form_cm_frame(cm_node, NULL, NULL, NULL, in irdma_send_reset()
666 cm_node->cm_core->stats_connect_errs++; in irdma_active_open_err()
687 cm_node->cm_core->stats_passive_errs++; in irdma_passive_open_err()
954 sqbuf = cm_node->cm_core->form_cm_frame(cm_node, NULL, in irdma_send_mpa_request()
986 sqbuf = cm_node->cm_core->form_cm_frame(cm_node, NULL, in irdma_send_mpa_reject()
1184 struct irdma_cm_core *cm_core = cm_node->cm_core; in irdma_schedule_cm_timer() local
1231 spin_lock_irqsave(&cm_core->ht_lock, flags); in irdma_schedule_cm_timer()
1232 was_timer_set = timer_pending(&cm_core->tcp_timer); in irdma_schedule_cm_timer()
1235 cm_core->tcp_timer.expires = new_send->timetosend; in irdma_schedule_cm_timer()
1236 add_timer(&cm_core->tcp_timer); in irdma_schedule_cm_timer()
1238 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in irdma_schedule_cm_timer()
1319 struct irdma_cm_core *cm_core = from_timer(cm_core, t, tcp_timer); in irdma_cm_timer_tick() local
1329 irdma_timer_list_prep(cm_core, &timer_list); in irdma_cm_timer_tick()
1389 cm_node->cm_core->stats_pkt_retrans++; in irdma_cm_timer_tick()
1419 spin_lock_irqsave(&cm_core->ht_lock, flags); in irdma_cm_timer_tick()
1420 if (!timer_pending(&cm_core->tcp_timer)) { in irdma_cm_timer_tick()
1421 cm_core->tcp_timer.expires = nexttimeout; in irdma_cm_timer_tick()
1422 add_timer(&cm_core->tcp_timer); in irdma_cm_timer_tick()
1424 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in irdma_cm_timer_tick()
1471 sqbuf = cm_node->cm_core->form_cm_frame(cm_node, &opts, NULL, NULL, in irdma_send_syn()
1490 sqbuf = cm_node->cm_core->form_cm_frame(cm_node, NULL, NULL, NULL, in irdma_send_ack()
1505 sqbuf = cm_node->cm_core->form_cm_frame(cm_node, NULL, NULL, NULL, in irdma_send_fin()
1524 irdma_find_listener(struct irdma_cm_core *cm_core, u32 *dst_addr, bool ipv4, u16 dst_port, in irdma_find_listener() argument
1534 spin_lock_irqsave(&cm_core->listen_list_lock, flags); in irdma_find_listener()
1535 list_for_each_entry(listen_node, &cm_core->listen_list, list) { in irdma_find_listener()
1546 spin_unlock_irqrestore(&cm_core->listen_list_lock, in irdma_find_listener()
1551 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); in irdma_find_listener()
1572 spin_lock_irqsave(&iwdev->cm_core.listen_list_lock, flags); in irdma_del_multiple_qhash()
1606 cm_parent_listen_node->cm_core->stats_listen_nodes_destroyed++; in irdma_del_multiple_qhash()
1608 spin_unlock_irqrestore(&iwdev->cm_core.listen_list_lock, flags); in irdma_del_multiple_qhash()
1790 spin_lock_irqsave(&iwdev->cm_core.listen_list_lock, flags); in irdma_add_mqh_ifa_cb()
1793 spin_unlock_irqrestore(&iwdev->cm_core.listen_list_lock, flags); in irdma_add_mqh_ifa_cb()
1794 cm_parent_listen_node->cm_core->stats_listen_nodes_created++; in irdma_add_mqh_ifa_cb()
1858 irdma_reset_list_prep(struct irdma_cm_core *cm_core, in irdma_reset_list_prep() argument
1865 HASH_FOR_EACH_RCU(cm_core->cm_hash_tbl, bkt, cm_node, list) { in irdma_reset_list_prep()
1881 irdma_dec_refcnt_listen(struct irdma_cm_core *cm_core, in irdma_dec_refcnt_listen() argument
1898 irdma_reset_list_prep(cm_core, listener, &reset_list); in irdma_dec_refcnt_listen()
1925 spin_lock_irqsave(&cm_core->listen_list_lock, flags); in irdma_dec_refcnt_listen()
1927 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); in irdma_dec_refcnt_listen()
1951 cm_core->stats_listen_destroyed++; in irdma_dec_refcnt_listen()
1952 cm_core->stats_listen_nodes_destroyed++; in irdma_dec_refcnt_listen()
1973 irdma_cm_del_listen(struct irdma_cm_core *cm_core, in irdma_cm_del_listen() argument
1980 return irdma_dec_refcnt_listen(cm_core, listener, 1, apbvt_del); in irdma_cm_del_listen()
1993 irdma_find_node(struct irdma_cm_core *cm_core, in irdma_find_node() argument
2001 HASH_FOR_EACH_POSSIBLE_RCU(cm_core->cm_hash_tbl, cm_node, list, key) { in irdma_find_node()
2026 irdma_add_hte_node(struct irdma_cm_core *cm_core, in irdma_add_hte_node() argument
2032 spin_lock_irqsave(&cm_core->ht_lock, flags); in irdma_add_hte_node()
2033 HASH_ADD_RCU(cm_core->cm_hash_tbl, &cm_node->list, key); in irdma_add_hte_node()
2034 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in irdma_add_hte_node()
2139 irdma_make_cm_node(struct irdma_cm_core *cm_core, struct irdma_device *iwdev, in irdma_make_cm_node() argument
2200 cm_node->cm_core = cm_core; in irdma_make_cm_node()
2211 irdma_add_hte_node(cm_core, cm_node); in irdma_make_cm_node()
2212 cm_core->stats_nodes_created++; in irdma_make_cm_node()
2224 struct irdma_cm_core *cm_core = cm_node->cm_core; in irdma_destroy_connection() local
2237 irdma_dec_refcnt_listen(cm_core, cm_node->listener, 0, true); in irdma_destroy_connection()
2270 cm_core->cm_free_ah(cm_node); in irdma_destroy_connection()
2280 struct irdma_cm_core *cm_core = cm_node->cm_core; in irdma_rem_ref_cm_node() local
2283 spin_lock_irqsave(&cm_core->ht_lock, flags); in irdma_rem_ref_cm_node()
2286 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in irdma_rem_ref_cm_node()
2293 HASH_DEL_RCU(cm_core->cm_hash_tbl, &cm_node->list); in irdma_rem_ref_cm_node()
2294 cm_node->cm_core->stats_nodes_destroyed++; in irdma_rem_ref_cm_node()
2296 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in irdma_rem_ref_cm_node()
2559 cm_node->cm_core->stats_backlog_drops++; in irdma_handle_syn_pkt()
2569 err = cm_node->cm_core->cm_create_ah(cm_node, false); in irdma_handle_syn_pkt()
2812 irdma_make_listen_node(struct irdma_cm_core *cm_core, in irdma_make_listen_node() argument
2820 listener = irdma_find_listener(cm_core, cm_info->loc_addr, cm_info->ipv4, in irdma_make_listen_node()
2836 cm_core->stats_listen_nodes_created++; in irdma_make_listen_node()
2852 listener->cm_core = cm_core; in irdma_make_listen_node()
2859 spin_lock_irqsave(&cm_core->listen_list_lock, flags); in irdma_make_listen_node()
2860 list_add(&listener->list, &cm_core->listen_list); in irdma_make_listen_node()
2861 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); in irdma_make_listen_node()
2876 irdma_create_cm_node(struct irdma_cm_core *cm_core, in irdma_create_cm_node() argument
2887 cm_node = irdma_make_cm_node(cm_core, iwdev, cm_info, NULL); in irdma_create_cm_node()
3014 struct irdma_cm_core *cm_core = &iwdev->cm_core; in irdma_receive_ilq() local
3039 irdma_debug(&cm_core->iwdev->rf->sc_dev, IRDMA_DEBUG_CM, in irdma_receive_ilq()
3063 cm_node = irdma_find_node(cm_core, cm_info.rem_port, cm_info.rem_addr, in irdma_receive_ilq()
3073 listener = irdma_find_listener(cm_core, in irdma_receive_ilq()
3081 irdma_debug(&cm_core->iwdev->rf->sc_dev, IRDMA_DEBUG_CM, in irdma_receive_ilq()
3087 cm_node = irdma_make_cm_node(cm_core, iwdev, &cm_info, in irdma_receive_ilq()
3090 irdma_debug(&cm_core->iwdev->rf->sc_dev, IRDMA_DEBUG_CM, in irdma_receive_ilq()
3134 struct irdma_cm_core *cm_core = &iwdev->cm_core; in irdma_setup_cm_core() local
3136 cm_core->iwdev = iwdev; in irdma_setup_cm_core()
3137 cm_core->dev = &iwdev->rf->sc_dev; in irdma_setup_cm_core()
3140 cm_core->event_wq = alloc_ordered_workqueue("iwarp-event-wq", 0); in irdma_setup_cm_core()
3141 if (!cm_core->event_wq) in irdma_setup_cm_core()
3144 INIT_LIST_HEAD(&cm_core->listen_list); in irdma_setup_cm_core()
3146 timer_setup(&cm_core->tcp_timer, irdma_cm_timer_tick, 0); in irdma_setup_cm_core()
3148 spin_lock_init(&cm_core->ht_lock); in irdma_setup_cm_core()
3149 spin_lock_init(&cm_core->listen_list_lock); in irdma_setup_cm_core()
3150 spin_lock_init(&cm_core->apbvt_lock); in irdma_setup_cm_core()
3153 cm_core->form_cm_frame = irdma_form_uda_cm_frame; in irdma_setup_cm_core()
3154 cm_core->cm_create_ah = irdma_add_qh; in irdma_setup_cm_core()
3155 cm_core->cm_free_ah = irdma_cm_free_ah_nop; in irdma_setup_cm_core()
3159 cm_core->form_cm_frame = irdma_form_ah_cm_frame; in irdma_setup_cm_core()
3160 cm_core->cm_create_ah = irdma_cm_create_ah; in irdma_setup_cm_core()
3161 cm_core->cm_free_ah = irdma_cm_free_ah; in irdma_setup_cm_core()
3173 irdma_cleanup_cm_core(struct irdma_cm_core *cm_core) in irdma_cleanup_cm_core() argument
3175 if (!cm_core) in irdma_cleanup_cm_core()
3178 del_timer_sync(&cm_core->tcp_timer); in irdma_cleanup_cm_core()
3180 destroy_workqueue(cm_core->event_wq); in irdma_cleanup_cm_core()
3181 cm_core->dev->ws_reset(&cm_core->iwdev->vsi); in irdma_cleanup_cm_core()
3433 spin_lock_irqsave(&iwdev->cm_core.ht_lock, flags); in irdma_cm_disconn_true()
3435 spin_unlock_irqrestore(&iwdev->cm_core.ht_lock, flags); in irdma_cm_disconn_true()
3440 spin_unlock_irqrestore(&iwdev->cm_core.ht_lock, flags); in irdma_cm_disconn_true()
3613 cm_node->cm_core->cm_free_ah(cm_node); in irdma_accept()
3643 cm_node->cm_core->stats_accepts++; in irdma_accept()
3672 cm_node->cm_core->stats_rejects++; in irdma_reject()
3770 ret = irdma_create_cm_node(&iwdev->cm_core, iwdev, conn_param, &cm_info, in irdma_connect()
3774 ret = cm_node->cm_core->cm_create_ah(cm_node, true); in irdma_connect()
3822 iwdev->cm_core.stats_connect_errs++; in irdma_connect()
3887 cm_listen_node = irdma_make_listen_node(&iwdev->cm_core, iwdev, in irdma_create_listen()
3931 cm_listen_node->cm_core->stats_listen_created++; in irdma_create_listen()
3942 irdma_cm_del_listen(&iwdev->cm_core, cm_listen_node, false); in irdma_create_listen()
3958 irdma_cm_del_listen(&iwdev->cm_core, cm_id->provider_data, in irdma_destroy_listen()
3979 irdma_iw_teardown_list_prep(struct irdma_cm_core *cm_core, in irdma_iw_teardown_list_prep() argument
3988 HASH_FOR_EACH_RCU(cm_core->cm_hash_tbl, bkt, cm_node, list) { in irdma_iw_teardown_list_prep()
4118 cm_node->cm_core->cm_free_ah(cm_node); in irdma_cm_event_connected()
4166 if (!event || !event->cm_node || !event->cm_node->cm_core) in irdma_cm_event_handler()
4217 queue_work(event->cm_node->cm_core->event_wq, &event->event_work); in irdma_cm_post_event()
4235 struct irdma_cm_core *cm_core = &iwdev->cm_core; in irdma_cm_teardown_connections() local
4246 irdma_iw_teardown_list_prep(cm_core, &teardown_list, ipaddr, nfo, disconnect_all); in irdma_cm_teardown_connections()