• Home
  • Raw
  • Download

Lines Matching refs:cm_core

168 	return rem_ref_cm_node(cm_node->cm_core, cm_node);  in nes_rem_ref_cm_node()
810 struct nes_cm_core *cm_core = cm_node->cm_core; in schedule_nes_timer() local
858 rem_ref_cm_node(cm_core, cm_node); in schedule_nes_timer()
864 if (!timer_pending(&cm_core->tcp_timer)) in schedule_nes_timer()
865 mod_timer(&cm_core->tcp_timer, new_send->timetosend); in schedule_nes_timer()
879 rem_ref_cm_node(cm_node->cm_core, cm_node); in nes_retrans_expired()
927 rem_ref_cm_node(cm_node->cm_core, cm_node); in handle_recv_entry()
946 struct nes_cm_core *cm_core = g_cm_core; in nes_cm_timer_tick() local
954 spin_lock_irqsave(&cm_core->ht_lock, flags); in nes_cm_timer_tick()
957 &cm_core->connected_nodes) { in nes_cm_timer_tick()
964 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in nes_cm_timer_tick()
1073 rem_ref_cm_node(cm_node->cm_core, in nes_cm_timer_tick()
1079 rem_ref_cm_node(cm_node->cm_core, cm_node); in nes_cm_timer_tick()
1083 if (!timer_pending(&cm_core->tcp_timer)) in nes_cm_timer_tick()
1084 mod_timer(&cm_core->tcp_timer, nexttimeout); in nes_cm_timer_tick()
1225 static struct nes_cm_node *find_node(struct nes_cm_core *cm_core, in find_node() argument
1233 hte = &cm_core->connected_nodes; in find_node()
1236 spin_lock_irqsave(&cm_core->ht_lock, flags); in find_node()
1250 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in find_node()
1254 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in find_node()
1264 static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core, in find_listener() argument
1274 spin_lock_irqsave(&cm_core->listen_list_lock, flags); in find_listener()
1275 list_for_each_entry(listen_node, &cm_core->listen_list.list, list) { in find_listener()
1289 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); in find_listener()
1293 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); in find_listener()
1302 static int add_hte_node(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node) in add_hte_node() argument
1307 if (!cm_node || !cm_core) in add_hte_node()
1313 spin_lock_irqsave(&cm_core->ht_lock, flags); in add_hte_node()
1316 hte = &cm_core->connected_nodes; in add_hte_node()
1318 atomic_inc(&cm_core->ht_node_cnt); in add_hte_node()
1320 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in add_hte_node()
1329 static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core, in mini_cm_dec_refcnt_listen() argument
1346 spin_lock_irqsave(&cm_core->ht_lock, flags); in mini_cm_dec_refcnt_listen()
1357 spin_unlock_irqrestore(&cm_core->ht_lock, flags); in mini_cm_dec_refcnt_listen()
1367 rem_ref_cm_node(cm_node->cm_core, cm_node); in mini_cm_dec_refcnt_listen()
1381 cm_node->cm_core, in mini_cm_dec_refcnt_listen()
1402 rem_ref_cm_node(cm_node->cm_core, in mini_cm_dec_refcnt_listen()
1410 spin_lock_irqsave(&cm_core->listen_list_lock, flags); in mini_cm_dec_refcnt_listen()
1415 atomic_dec(&cm_core->listen_node_cnt); in mini_cm_dec_refcnt_listen()
1417 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); in mini_cm_dec_refcnt_listen()
1441 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); in mini_cm_dec_refcnt_listen()
1457 static int mini_cm_del_listen(struct nes_cm_core *cm_core, in mini_cm_del_listen() argument
1462 return mini_cm_dec_refcnt_listen(cm_core, listener, 1); in mini_cm_del_listen()
1469 static inline int mini_cm_accelerated(struct nes_cm_core *cm_core, in mini_cm_accelerated() argument
1481 if (!timer_pending(&cm_core->tcp_timer)) in mini_cm_accelerated()
1482 mod_timer(&cm_core->tcp_timer, (jiffies + NES_SHORT_TIME)); in mini_cm_accelerated()
1552 static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core, in make_cm_node() argument
1601 cm_node->cm_core = cm_core; in make_cm_node()
1612 atomic_inc(&cm_core->node_cnt); in make_cm_node()
1639 add_hte_node(cm_core, cm_node); in make_cm_node()
1659 static int rem_ref_cm_node(struct nes_cm_core *cm_core, in rem_ref_cm_node() argument
1668 spin_lock_irqsave(&cm_node->cm_core->ht_lock, flags); in rem_ref_cm_node()
1670 spin_unlock_irqrestore(&cm_node->cm_core->ht_lock, flags); in rem_ref_cm_node()
1674 atomic_dec(&cm_core->ht_node_cnt); in rem_ref_cm_node()
1675 spin_unlock_irqrestore(&cm_node->cm_core->ht_lock, flags); in rem_ref_cm_node()
1687 mini_cm_dec_refcnt_listen(cm_core, cm_node->listener, 0); in rem_ref_cm_node()
1700 atomic_dec(&cm_core->node_cnt); in rem_ref_cm_node()
1812 rem_ref_cm_node(cm_node->cm_core, cm_node); in handle_fin_pkt()
1876 rem_ref_cm_node(cm_node->cm_core, cm_node); in handle_rst_pkt()
2193 rem_ref_cm_node(cm_node->cm_core, cm_node); in handle_ack_pkt()
2278 rem_ref_cm_node(cm_node->cm_core, cm_node); in passive_open_err()
2295 rem_ref_cm_node(cm_node->cm_core, cm_node); in free_retrans_entry()
2313 struct nes_cm_core *cm_core) in process_packet() argument
2364 static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *cm_core, in mini_cm_listen() argument
2377 listener = find_listener(cm_core, cm_info->loc_addr, cm_info->loc_port, in mini_cm_listen()
2427 listener->cm_core = cm_core; in mini_cm_listen()
2429 atomic_inc(&cm_core->node_cnt); in mini_cm_listen()
2436 spin_lock_irqsave(&cm_core->listen_list_lock, flags); in mini_cm_listen()
2437 list_add(&listener->list, &cm_core->listen_list.list); in mini_cm_listen()
2438 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); in mini_cm_listen()
2439 atomic_inc(&cm_core->listen_node_cnt); in mini_cm_listen()
2454 static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core, in mini_cm_connect() argument
2466 cm_node = make_cm_node(cm_core, nesvnic, cm_info, NULL); in mini_cm_connect()
2475 loopbackremotelistener = find_listener(cm_core, in mini_cm_connect()
2489 loopbackremotenode = make_cm_node(cm_core, nesvnic, in mini_cm_connect()
2492 rem_ref_cm_node(cm_node->cm_core, cm_node); in mini_cm_connect()
2544 rem_ref_cm_node(cm_node->cm_core, cm_node); in mini_cm_connect()
2563 static int mini_cm_accept(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node) in mini_cm_accept() argument
2572 static int mini_cm_reject(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node) in mini_cm_reject() argument
2592 rem_ref_cm_node(cm_core, cm_node); in mini_cm_reject()
2595 rem_ref_cm_node(cm_core, cm_node); in mini_cm_reject()
2611 rem_ref_cm_node(cm_core, cm_node); in mini_cm_reject()
2612 rem_ref_cm_node(cm_core, loopback); in mini_cm_reject()
2621 rem_ref_cm_node(cm_core, cm_node); in mini_cm_reject()
2625 rem_ref_cm_node(cm_core, loopback); in mini_cm_reject()
2637 static int mini_cm_close(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node) in mini_cm_close() argument
2641 if (!cm_core || !cm_node) in mini_cm_close()
2675 ret = rem_ref_cm_node(cm_core, cm_node); in mini_cm_close()
2681 ret = rem_ref_cm_node(cm_core, cm_node); in mini_cm_close()
2692 static int mini_cm_recv_pkt(struct nes_cm_core *cm_core, in mini_cm_recv_pkt() argument
2729 cm_node = find_node(cm_core, in mini_cm_recv_pkt()
2740 listener = find_listener(cm_core, nfo.mapped_loc_addr, in mini_cm_recv_pkt()
2752 cm_node = make_cm_node(cm_core, nesvnic, &nfo, in mini_cm_recv_pkt()
2766 rem_ref_cm_node(cm_core, cm_node); in mini_cm_recv_pkt()
2775 rem_ref_cm_node(cm_core, cm_node); in mini_cm_recv_pkt()
2784 process_packet(cm_node, skb, cm_core); in mini_cm_recv_pkt()
2785 rem_ref_cm_node(cm_core, cm_node); in mini_cm_recv_pkt()
2796 struct nes_cm_core *cm_core; in nes_cm_alloc_core() local
2800 cm_core = kzalloc(sizeof(*cm_core), GFP_KERNEL); in nes_cm_alloc_core()
2801 if (!cm_core) in nes_cm_alloc_core()
2804 INIT_LIST_HEAD(&cm_core->connected_nodes); in nes_cm_alloc_core()
2805 init_timer(&cm_core->tcp_timer); in nes_cm_alloc_core()
2806 cm_core->tcp_timer.function = nes_cm_timer_tick; in nes_cm_alloc_core()
2808 cm_core->mtu = NES_CM_DEFAULT_MTU; in nes_cm_alloc_core()
2809 cm_core->state = NES_CM_STATE_INITED; in nes_cm_alloc_core()
2810 cm_core->free_tx_pkt_max = NES_CM_DEFAULT_FREE_PKTS; in nes_cm_alloc_core()
2812 atomic_set(&cm_core->events_posted, 0); in nes_cm_alloc_core()
2814 cm_core->api = &nes_cm_api; in nes_cm_alloc_core()
2816 spin_lock_init(&cm_core->ht_lock); in nes_cm_alloc_core()
2817 spin_lock_init(&cm_core->listen_list_lock); in nes_cm_alloc_core()
2819 INIT_LIST_HEAD(&cm_core->listen_list.list); in nes_cm_alloc_core()
2821 nes_debug(NES_DBG_CM, "Init CM Core completed -- cm_core=%p\n", cm_core); in nes_cm_alloc_core()
2824 cm_core->event_wq = create_singlethread_workqueue("nesewq"); in nes_cm_alloc_core()
2825 cm_core->post_event = nes_cm_post_event; in nes_cm_alloc_core()
2827 cm_core->disconn_wq = create_singlethread_workqueue("nesdwq"); in nes_cm_alloc_core()
2829 print_core(cm_core); in nes_cm_alloc_core()
2830 return cm_core; in nes_cm_alloc_core()
2837 static int mini_cm_dealloc_core(struct nes_cm_core *cm_core) in mini_cm_dealloc_core() argument
2839 nes_debug(NES_DBG_CM, "De-Alloc CM Core (%p)\n", cm_core); in mini_cm_dealloc_core()
2841 if (!cm_core) in mini_cm_dealloc_core()
2846 if (timer_pending(&cm_core->tcp_timer)) in mini_cm_dealloc_core()
2847 del_timer(&cm_core->tcp_timer); in mini_cm_dealloc_core()
2849 destroy_workqueue(cm_core->event_wq); in mini_cm_dealloc_core()
2850 destroy_workqueue(cm_core->disconn_wq); in mini_cm_dealloc_core()
2852 kfree(cm_core); in mini_cm_dealloc_core()
2861 static int mini_cm_get(struct nes_cm_core *cm_core) in mini_cm_get() argument
2863 return cm_core->state; in mini_cm_get()
2870 static int mini_cm_set(struct nes_cm_core *cm_core, u32 type, u32 value) in mini_cm_set() argument
2876 cm_core->mtu = value; in mini_cm_set()
2879 cm_core->free_tx_pkt_max = value; in mini_cm_set()
3227 rem_ref_cm_node(cm_node->cm_core, cm_node->loopbackpartner); in nes_accept()
3228 rem_ref_cm_node(cm_node->cm_core, cm_node); in nes_accept()
3234 rem_ref_cm_node(cm_node->cm_core, cm_node); in nes_accept()
3388 cm_node->cm_core->api->accelerated(cm_node->cm_core, cm_node); in nes_accept()
3439 struct nes_cm_core *cm_core; in nes_reject() local
3445 cm_core = cm_node->cm_core; in nes_reject()
3460 return cm_core->api->reject(cm_core, cm_node); in nes_reject()
3817 cm_node->cm_core->api->accelerated(cm_node->cm_core, cm_node); in cm_event_connected()
3903 rem_ref_cm_node(event->cm_node->cm_core, event->cm_node); in cm_event_connect_error()
4074 atomic_inc(&event->cm_node->cm_core->events_posted); in nes_cm_post_event()
4081 queue_work(event->cm_node->cm_core->event_wq, &event->event_work); in nes_cm_post_event()
4097 struct nes_cm_core *cm_core; in nes_cm_event_handler() local
4099 if ((!event) || (!event->cm_node) || (!event->cm_node->cm_core)) in nes_cm_event_handler()
4102 cm_core = event->cm_node->cm_core; in nes_cm_event_handler()
4104 event, event->type, atomic_read(&cm_core->events_posted)); in nes_cm_event_handler()
4147 atomic_dec(&cm_core->events_posted); in nes_cm_event_handler()
4149 rem_ref_cm_node(cm_core, event->cm_node); in nes_cm_event_handler()