Lines Matching refs:cm
133 } cm; variable
325 spin_lock_irqsave(&cm.state_lock, flags2); in cm_alloc_msg()
326 spin_lock_irqsave(&cm.lock, flags); in cm_alloc_msg()
335 spin_unlock_irqrestore(&cm.lock, flags); in cm_alloc_msg()
338 spin_unlock_irqrestore(&cm.lock, flags); in cm_alloc_msg()
372 spin_unlock_irqrestore(&cm.state_lock, flags2); in cm_alloc_msg()
498 spin_lock_irqsave(&cm.lock, flags); in add_cm_id_to_port_list()
507 spin_unlock_irqrestore(&cm.lock, flags); in add_cm_id_to_port_list()
519 read_lock_irqsave(&cm.device_lock, flags); in get_cm_port_from_path()
520 list_for_each_entry(cm_dev, &cm.device_list, list) { in get_cm_port_from_path()
526 read_unlock_irqrestore(&cm.device_lock, flags); in get_cm_port_from_path()
534 read_lock_irqsave(&cm.device_lock, flags); in get_cm_port_from_path()
535 list_for_each_entry(cm_dev, &cm.device_list, list) { in get_cm_port_from_path()
545 read_unlock_irqrestore(&cm.device_lock, flags); in get_cm_port_from_path()
605 spin_lock_irqsave(&cm.lock, flags); in cm_alloc_id()
607 id = idr_alloc_cyclic(&cm.local_id_table, cm_id_priv, 0, 0, GFP_NOWAIT); in cm_alloc_id()
609 spin_unlock_irqrestore(&cm.lock, flags); in cm_alloc_id()
612 cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand; in cm_alloc_id()
618 spin_lock_irq(&cm.lock); in cm_free_id()
619 idr_remove(&cm.local_id_table, in cm_free_id()
620 (__force int) (local_id ^ cm.random_id_operand)); in cm_free_id()
621 spin_unlock_irq(&cm.lock); in cm_free_id()
628 cm_id_priv = idr_find(&cm.local_id_table, in cm_get_id()
629 (__force int) (local_id ^ cm.random_id_operand)); in cm_get_id()
644 spin_lock_irq(&cm.lock); in cm_acquire_id()
646 spin_unlock_irq(&cm.lock); in cm_acquire_id()
678 struct rb_node **link = &cm.listen_service_table.rb_node; in cm_insert_listen()
705 rb_insert_color(&cm_id_priv->service_node, &cm.listen_service_table); in cm_insert_listen()
712 struct rb_node *node = cm.listen_service_table.rb_node; in cm_find_listen()
739 struct rb_node **link = &cm.remote_id_table.rb_node; in cm_insert_remote_id()
762 rb_insert_color(&timewait_info->remote_id_node, &cm.remote_id_table); in cm_insert_remote_id()
769 struct rb_node *node = cm.remote_id_table.rb_node; in cm_find_remote_id()
792 struct rb_node **link = &cm.remote_qp_table.rb_node; in cm_insert_remote_qpn()
815 rb_insert_color(&timewait_info->remote_qp_node, &cm.remote_qp_table); in cm_insert_remote_qpn()
822 struct rb_node **link = &cm.remote_sidr_table.rb_node; in cm_insert_remote_sidr()
849 rb_insert_color(&cm_id_priv->sidr_id_node, &cm.remote_sidr_table); in cm_insert_remote_sidr()
945 rb_erase(&timewait_info->remote_id_node, &cm.remote_id_table); in cm_cleanup_timewait()
950 rb_erase(&timewait_info->remote_qp_node, &cm.remote_qp_table); in cm_cleanup_timewait()
979 spin_lock_irqsave(&cm.lock, flags); in cm_enter_timewait()
981 list_add_tail(&cm_id_priv->timewait_info->list, &cm.timewait_list); in cm_enter_timewait()
982 spin_unlock_irqrestore(&cm.lock, flags); in cm_enter_timewait()
993 spin_lock_irqsave(&cm.lock, flags); in cm_enter_timewait()
995 queue_delayed_work(cm.wq, &cm_id_priv->timewait_info->work.work, in cm_enter_timewait()
997 spin_unlock_irqrestore(&cm.lock, flags); in cm_enter_timewait()
1008 spin_lock_irqsave(&cm.lock, flags); in cm_reset_to_idle()
1010 spin_unlock_irqrestore(&cm.lock, flags); in cm_reset_to_idle()
1028 spin_lock_irq(&cm.lock); in cm_destroy_id()
1032 spin_unlock_irq(&cm.lock); in cm_destroy_id()
1035 rb_erase(&cm_id_priv->service_node, &cm.listen_service_table); in cm_destroy_id()
1036 spin_unlock_irq(&cm.lock); in cm_destroy_id()
1046 spin_lock_irq(&cm.lock); in cm_destroy_id()
1049 &cm.remote_sidr_table); in cm_destroy_id()
1050 spin_unlock_irq(&cm.lock); in cm_destroy_id()
1103 spin_lock_irq(&cm.lock); in cm_destroy_id()
1110 spin_unlock_irq(&cm.lock); in cm_destroy_id()
1163 cm_id->service_id = cpu_to_be64(cm.listen_service_id++); in __ib_cm_listen()
1184 spin_lock_irqsave(&cm.lock, flags); in ib_cm_listen()
1186 spin_unlock_irqrestore(&cm.lock, flags); in ib_cm_listen()
1222 spin_lock_irqsave(&cm.lock, flags); in ib_cm_insert_listen()
1233 spin_unlock_irqrestore(&cm.lock, flags); in ib_cm_insert_listen()
1238 spin_unlock_irqrestore(&cm.lock, flags); in ib_cm_insert_listen()
1249 spin_unlock_irqrestore(&cm.lock, flags); in ib_cm_insert_listen()
1858 spin_lock_irq(&cm.lock); in cm_match_req()
1863 spin_unlock_irq(&cm.lock); in cm_match_req()
1878 spin_unlock_irq(&cm.lock); in cm_match_req()
1895 spin_unlock_irq(&cm.lock); in cm_match_req()
1905 spin_unlock_irq(&cm.lock); in cm_match_req()
2316 spin_lock(&cm.lock); in cm_rep_handler()
2319 spin_unlock(&cm.lock); in cm_rep_handler()
2330 &cm.remote_id_table); in cm_rep_handler()
2335 spin_unlock(&cm.lock); in cm_rep_handler()
2353 spin_unlock(&cm.lock); in cm_rep_handler()
2820 spin_lock_irq(&cm.lock); in cm_acquire_rejected_id()
2824 spin_unlock_irq(&cm.lock); in cm_acquire_rejected_id()
2827 cm_id_priv = idr_find(&cm.local_id_table, (__force int) in cm_acquire_rejected_id()
2829 cm.random_id_operand)); in cm_acquire_rejected_id()
2836 spin_unlock_irq(&cm.lock); in cm_acquire_rejected_id()
3438 spin_lock_irq(&cm.lock); in cm_timewait_handler()
3440 spin_unlock_irq(&cm.lock); in cm_timewait_handler()
3583 spin_lock_irq(&cm.lock); in cm_sidr_req_handler()
3586 spin_unlock_irq(&cm.lock); in cm_sidr_req_handler()
3595 spin_unlock_irq(&cm.lock); in cm_sidr_req_handler()
3601 spin_unlock_irq(&cm.lock); in cm_sidr_req_handler()
3672 spin_lock_irqsave(&cm.lock, flags); in ib_send_cm_sidr_rep()
3674 rb_erase(&cm_id_priv->sidr_id_node, &cm.remote_sidr_table); in ib_send_cm_sidr_rep()
3677 spin_unlock_irqrestore(&cm.lock, flags); in ib_send_cm_sidr_rep()
3933 spin_lock_irqsave(&cm.lock, flags); in cm_establish()
3935 queue_delayed_work(cm.wq, &work->work, 0); in cm_establish()
3940 spin_unlock_irqrestore(&cm.lock, flags); in cm_establish()
4065 spin_lock_irq(&cm.lock); in cm_recv_handler()
4067 queue_delayed_work(cm.wq, &work->work, 0); in cm_recv_handler()
4070 spin_unlock_irq(&cm.lock); in cm_recv_handler()
4419 write_lock_irqsave(&cm.device_lock, flags); in cm_add_one()
4420 list_add_tail(&cm_dev->list, &cm.device_list); in cm_add_one()
4421 write_unlock_irqrestore(&cm.device_lock, flags); in cm_add_one()
4460 write_lock_irqsave(&cm.device_lock, flags); in cm_remove_one()
4462 write_unlock_irqrestore(&cm.device_lock, flags); in cm_remove_one()
4464 spin_lock_irq(&cm.lock); in cm_remove_one()
4466 spin_unlock_irq(&cm.lock); in cm_remove_one()
4475 spin_lock_irq(&cm.lock); in cm_remove_one()
4480 spin_unlock_irq(&cm.lock); in cm_remove_one()
4486 flush_workqueue(cm.wq); in cm_remove_one()
4487 spin_lock_irq(&cm.state_lock); in cm_remove_one()
4490 spin_unlock_irq(&cm.state_lock); in cm_remove_one()
4503 memset(&cm, 0, sizeof cm); in ib_cm_init()
4504 INIT_LIST_HEAD(&cm.device_list); in ib_cm_init()
4505 rwlock_init(&cm.device_lock); in ib_cm_init()
4506 spin_lock_init(&cm.lock); in ib_cm_init()
4507 spin_lock_init(&cm.state_lock); in ib_cm_init()
4508 cm.listen_service_table = RB_ROOT; in ib_cm_init()
4509 cm.listen_service_id = be64_to_cpu(IB_CM_ASSIGN_SERVICE_ID); in ib_cm_init()
4510 cm.remote_id_table = RB_ROOT; in ib_cm_init()
4511 cm.remote_qp_table = RB_ROOT; in ib_cm_init()
4512 cm.remote_sidr_table = RB_ROOT; in ib_cm_init()
4513 idr_init(&cm.local_id_table); in ib_cm_init()
4514 get_random_bytes(&cm.random_id_operand, sizeof cm.random_id_operand); in ib_cm_init()
4515 INIT_LIST_HEAD(&cm.timewait_list); in ib_cm_init()
4523 cm.wq = alloc_workqueue("ib_cm", 0, 1); in ib_cm_init()
4524 if (!cm.wq) { in ib_cm_init()
4535 destroy_workqueue(cm.wq); in ib_cm_init()
4539 idr_destroy(&cm.local_id_table); in ib_cm_init()
4547 spin_lock_irq(&cm.lock); in ib_cm_cleanup()
4548 list_for_each_entry(timewait_info, &cm.timewait_list, list) in ib_cm_cleanup()
4550 spin_unlock_irq(&cm.lock); in ib_cm_cleanup()
4553 destroy_workqueue(cm.wq); in ib_cm_cleanup()
4555 list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) { in ib_cm_cleanup()
4561 idr_destroy(&cm.local_id_table); in ib_cm_cleanup()