• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/infiniband/hw/nes/

Lines Matching defs:cm_core

137 /* set address of this instance to cm_core->cm_ops at cm_core alloc */
430 * rem_ref_cm_node(cm_core, cm_node);add_ref_cm_node(cm_node);
437 struct nes_cm_core *cm_core = cm_node->cm_core;
486 rem_ref_cm_node(cm_core, cm_node);
492 was_timer_set = timer_pending(&cm_core->tcp_timer);
495 cm_core->tcp_timer.expires = new_send->timetosend;
496 add_timer(&cm_core->tcp_timer);
510 rem_ref_cm_node(cm_node->cm_core, cm_node);
558 rem_ref_cm_node(cm_node->cm_core, cm_node);
577 struct nes_cm_core *cm_core = g_cm_core;
584 spin_lock_irqsave(&cm_core->ht_lock, flags);
587 &cm_core->connected_nodes) {
594 spin_unlock_irqrestore(&cm_core->ht_lock, flags);
702 rem_ref_cm_node(cm_node->cm_core,
708 rem_ref_cm_node(cm_node->cm_core, cm_node);
712 if (!timer_pending(&cm_core->tcp_timer)) {
713 cm_core->tcp_timer.expires = nexttimeout;
714 add_timer(&cm_core->tcp_timer);
856 static struct nes_cm_node *find_node(struct nes_cm_core *cm_core,
864 hte = &cm_core->connected_nodes;
867 spin_lock_irqsave(&cm_core->ht_lock, flags);
878 spin_unlock_irqrestore(&cm_core->ht_lock, flags);
882 spin_unlock_irqrestore(&cm_core->ht_lock, flags);
892 static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
899 spin_lock_irqsave(&cm_core->listen_list_lock, flags);
900 list_for_each_entry(listen_node, &cm_core->listen_list.list, list) {
907 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
911 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
921 static int add_hte_node(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node)
926 if (!cm_node || !cm_core)
932 spin_lock_irqsave(&cm_core->ht_lock, flags);
935 hte = &cm_core->connected_nodes;
937 atomic_inc(&cm_core->ht_node_cnt);
939 spin_unlock_irqrestore(&cm_core->ht_lock, flags);
948 static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
965 spin_lock_irqsave(&cm_core->ht_lock, flags);
976 spin_unlock_irqrestore(&cm_core->ht_lock, flags);
986 rem_ref_cm_node(cm_node->cm_core, cm_node);
1000 cm_node->cm_core,
1021 rem_ref_cm_node(cm_node->cm_core,
1029 spin_lock_irqsave(&cm_core->listen_list_lock, flags);
1034 atomic_dec(&cm_core->listen_node_cnt);
1036 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
1050 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
1066 static int mini_cm_del_listen(struct nes_cm_core *cm_core,
1071 return mini_cm_dec_refcnt_listen(cm_core, listener, 1);
1078 static inline int mini_cm_accelerated(struct nes_cm_core *cm_core,
1091 was_timer_set = timer_pending(&cm_core->tcp_timer);
1093 cm_core->tcp_timer.expires = jiffies + NES_SHORT_TIME;
1094 add_timer(&cm_core->tcp_timer);
1159 static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
1197 cm_node->cm_core = cm_core;
1208 atomic_inc(&cm_core->node_cnt);
1238 add_hte_node(cm_core, cm_node);
1258 static int rem_ref_cm_node(struct nes_cm_core *cm_core,
1267 spin_lock_irqsave(&cm_node->cm_core->ht_lock, flags);
1269 spin_unlock_irqrestore(&cm_node->cm_core->ht_lock, flags);
1273 atomic_dec(&cm_core->ht_node_cnt);
1274 spin_unlock_irqrestore(&cm_node->cm_core->ht_lock, flags);
1286 mini_cm_dec_refcnt_listen(cm_core, cm_node->listener, 0);
1296 atomic_dec(&cm_core->node_cnt);
1411 rem_ref_cm_node(cm_node->cm_core, cm_node);
1463 rem_ref_cm_node(cm_node->cm_core, cm_node);
1778 rem_ref_cm_node(cm_node->cm_core, cm_node);
1863 rem_ref_cm_node(cm_node->cm_core, cm_node);
1879 rem_ref_cm_node(cm_node->cm_core, cm_node);
1897 struct nes_cm_core *cm_core)
1946 static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *cm_core,
1956 listener = find_listener(cm_core, htonl(cm_info->loc_addr),
1987 listener->cm_core = cm_core;
1989 atomic_inc(&cm_core->node_cnt);
1996 spin_lock_irqsave(&cm_core->listen_list_lock, flags);
1997 list_add(&listener->list, &cm_core->listen_list.list);
1998 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
1999 atomic_inc(&cm_core->listen_node_cnt);
2014 static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
2027 cm_node = make_cm_node(cm_core, nesvnic, cm_info, NULL);
2041 loopbackremotelistener = find_listener(cm_core,
2051 loopbackremotenode = make_cm_node(cm_core, nesvnic,
2054 rem_ref_cm_node(cm_node->cm_core, cm_node);
2108 rem_ref_cm_node(cm_node->cm_core, cm_node);
2126 static int mini_cm_accept(struct nes_cm_core *cm_core,
2136 static int mini_cm_reject(struct nes_cm_core *cm_core,
2157 rem_ref_cm_node(cm_core, cm_node);
2160 rem_ref_cm_node(cm_core, cm_node);
2175 rem_ref_cm_node(cm_core, cm_node);
2176 rem_ref_cm_node(cm_core, loopback);
2185 rem_ref_cm_node(cm_core, cm_node);
2189 rem_ref_cm_node(cm_core, loopback);
2201 static int mini_cm_close(struct nes_cm_core *cm_core, struct nes_cm_node *cm_node)
2205 if (!cm_core || !cm_node)
2239 ret = rem_ref_cm_node(cm_core, cm_node);
2245 ret = rem_ref_cm_node(cm_core, cm_node);
2256 static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
2288 cm_node = find_node(cm_core,
2299 listener = find_listener(cm_core, nfo.loc_addr,
2311 cm_node = make_cm_node(cm_core, nesvnic, &nfo,
2325 rem_ref_cm_node(cm_core, cm_node);
2331 rem_ref_cm_node(cm_core, cm_node);
2339 process_packet(cm_node, skb, cm_core);
2340 rem_ref_cm_node(cm_core, cm_node);
2351 struct nes_cm_core *cm_core;
2355 cm_core = kzalloc(sizeof(*cm_core), GFP_KERNEL);
2356 if (!cm_core)
2359 INIT_LIST_HEAD(&cm_core->connected_nodes);
2360 init_timer(&cm_core->tcp_timer);
2361 cm_core->tcp_timer.function = nes_cm_timer_tick;
2363 cm_core->mtu = NES_CM_DEFAULT_MTU;
2364 cm_core->state = NES_CM_STATE_INITED;
2365 cm_core->free_tx_pkt_max = NES_CM_DEFAULT_FREE_PKTS;
2367 atomic_set(&cm_core->events_posted, 0);
2369 cm_core->api = &nes_cm_api;
2371 spin_lock_init(&cm_core->ht_lock);
2372 spin_lock_init(&cm_core->listen_list_lock);
2374 INIT_LIST_HEAD(&cm_core->listen_list.list);
2376 nes_debug(NES_DBG_CM, "Init CM Core completed -- cm_core=%p\n", cm_core);
2379 cm_core->event_wq = create_singlethread_workqueue("nesewq");
2380 cm_core->post_event = nes_cm_post_event;
2382 cm_core->disconn_wq = create_singlethread_workqueue("nesdwq");
2384 print_core(cm_core);
2385 return cm_core;
2392 static int mini_cm_dealloc_core(struct nes_cm_core *cm_core)
2394 nes_debug(NES_DBG_CM, "De-Alloc CM Core (%p)\n", cm_core);
2396 if (!cm_core)
2401 if (timer_pending(&cm_core->tcp_timer)) {
2402 del_timer(&cm_core->tcp_timer);
2405 destroy_workqueue(cm_core->event_wq);
2406 destroy_workqueue(cm_core->disconn_wq);
2408 kfree(cm_core);
2417 static int mini_cm_get(struct nes_cm_core *cm_core)
2419 return cm_core->state;
2426 static int mini_cm_set(struct nes_cm_core *cm_core, u32 type, u32 value)
2432 cm_core->mtu = value;
2435 cm_core->free_tx_pkt_max = value;
2774 rem_ref_cm_node(cm_node->cm_core, cm_node->loopbackpartner);
2775 rem_ref_cm_node(cm_node->cm_core, cm_node);
2781 rem_ref_cm_node(cm_node->cm_core, cm_node);
2946 cm_node->cm_core->api->accelerated(cm_node->cm_core, cm_node);
2999 struct nes_cm_core *cm_core;
3004 cm_core = cm_node->cm_core;
3025 return cm_core->api->reject(cm_core, &cm_node->mpa_frame, cm_node);
3373 cm_node->cm_core->api->accelerated(cm_node->cm_core, cm_node);
3452 rem_ref_cm_node(event->cm_node->cm_core, event->cm_node);
3608 atomic_inc(&event->cm_node->cm_core->events_posted);
3615 queue_work(event->cm_node->cm_core->event_wq, &event->event_work);
3631 struct nes_cm_core *cm_core;
3633 if ((!event) || (!event->cm_node) || (!event->cm_node->cm_core))
3636 cm_core = event->cm_node->cm_core;
3638 event, event->type, atomic_read(&cm_core->events_posted));
3681 atomic_dec(&cm_core->events_posted);
3683 rem_ref_cm_node(cm_core, event->cm_node);