Lines Matching refs:cm
83 } cm; variable
360 read_lock_irqsave(&cm.device_lock, flags); in cm_init_av_by_path()
361 list_for_each_entry(cm_dev, &cm.device_list, list) { in cm_init_av_by_path()
368 read_unlock_irqrestore(&cm.device_lock, flags); in cm_init_av_by_path()
394 spin_lock_irqsave(&cm.lock, flags); in cm_alloc_id()
396 id = idr_alloc_cyclic(&cm.local_id_table, cm_id_priv, 0, 0, GFP_NOWAIT); in cm_alloc_id()
398 spin_unlock_irqrestore(&cm.lock, flags); in cm_alloc_id()
401 cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand; in cm_alloc_id()
407 spin_lock_irq(&cm.lock); in cm_free_id()
408 idr_remove(&cm.local_id_table, in cm_free_id()
409 (__force int) (local_id ^ cm.random_id_operand)); in cm_free_id()
410 spin_unlock_irq(&cm.lock); in cm_free_id()
417 cm_id_priv = idr_find(&cm.local_id_table, in cm_get_id()
418 (__force int) (local_id ^ cm.random_id_operand)); in cm_get_id()
433 spin_lock_irq(&cm.lock); in cm_acquire_id()
435 spin_unlock_irq(&cm.lock); in cm_acquire_id()
501 struct rb_node **link = &cm.listen_service_table.rb_node; in cm_insert_listen()
534 rb_insert_color(&cm_id_priv->service_node, &cm.listen_service_table); in cm_insert_listen()
542 struct rb_node *node = cm.listen_service_table.rb_node; in cm_find_listen()
574 struct rb_node **link = &cm.remote_id_table.rb_node; in cm_insert_remote_id()
597 rb_insert_color(&timewait_info->remote_id_node, &cm.remote_id_table); in cm_insert_remote_id()
604 struct rb_node *node = cm.remote_id_table.rb_node; in cm_find_remote_id()
627 struct rb_node **link = &cm.remote_qp_table.rb_node; in cm_insert_remote_qpn()
650 rb_insert_color(&timewait_info->remote_qp_node, &cm.remote_qp_table); in cm_insert_remote_qpn()
657 struct rb_node **link = &cm.remote_sidr_table.rb_node; in cm_insert_remote_sidr()
684 rb_insert_color(&cm_id_priv->sidr_id_node, &cm.remote_sidr_table); in cm_insert_remote_sidr()
778 rb_erase(&timewait_info->remote_id_node, &cm.remote_id_table); in cm_cleanup_timewait()
783 rb_erase(&timewait_info->remote_qp_node, &cm.remote_qp_table); in cm_cleanup_timewait()
807 spin_lock_irqsave(&cm.lock, flags); in cm_enter_timewait()
809 list_add_tail(&cm_id_priv->timewait_info->list, &cm.timewait_list); in cm_enter_timewait()
810 spin_unlock_irqrestore(&cm.lock, flags); in cm_enter_timewait()
819 queue_delayed_work(cm.wq, &cm_id_priv->timewait_info->work.work, in cm_enter_timewait()
830 spin_lock_irqsave(&cm.lock, flags); in cm_reset_to_idle()
832 spin_unlock_irqrestore(&cm.lock, flags); in cm_reset_to_idle()
850 spin_lock_irq(&cm.lock); in cm_destroy_id()
851 rb_erase(&cm_id_priv->service_node, &cm.listen_service_table); in cm_destroy_id()
852 spin_unlock_irq(&cm.lock); in cm_destroy_id()
862 spin_lock_irq(&cm.lock); in cm_destroy_id()
865 &cm.remote_sidr_table); in cm_destroy_id()
866 spin_unlock_irq(&cm.lock); in cm_destroy_id()
965 spin_lock_irqsave(&cm.lock, flags); in ib_cm_listen()
967 cm_id->service_id = cpu_to_be64(cm.listen_service_id++); in ib_cm_listen()
974 spin_unlock_irqrestore(&cm.lock, flags); in ib_cm_listen()
1452 spin_lock_irq(&cm.lock); in cm_match_req()
1457 spin_unlock_irq(&cm.lock); in cm_match_req()
1469 spin_unlock_irq(&cm.lock); in cm_match_req()
1482 spin_unlock_irq(&cm.lock); in cm_match_req()
1492 spin_unlock_irq(&cm.lock); in cm_match_req()
1852 spin_lock(&cm.lock); in cm_rep_handler()
1855 spin_unlock(&cm.lock); in cm_rep_handler()
1863 &cm.remote_id_table); in cm_rep_handler()
1865 spin_unlock(&cm.lock); in cm_rep_handler()
1873 spin_unlock(&cm.lock); in cm_rep_handler()
2326 spin_lock_irq(&cm.lock); in cm_acquire_rejected_id()
2330 spin_unlock_irq(&cm.lock); in cm_acquire_rejected_id()
2333 cm_id_priv = idr_find(&cm.local_id_table, (__force int) in cm_acquire_rejected_id()
2335 cm.random_id_operand)); in cm_acquire_rejected_id()
2342 spin_unlock_irq(&cm.lock); in cm_acquire_rejected_id()
2880 spin_lock_irq(&cm.lock); in cm_timewait_handler()
2882 spin_unlock_irq(&cm.lock); in cm_timewait_handler()
3015 spin_lock_irq(&cm.lock); in cm_sidr_req_handler()
3018 spin_unlock_irq(&cm.lock); in cm_sidr_req_handler()
3028 spin_unlock_irq(&cm.lock); in cm_sidr_req_handler()
3034 spin_unlock_irq(&cm.lock); in cm_sidr_req_handler()
3105 spin_lock_irqsave(&cm.lock, flags); in ib_send_cm_sidr_rep()
3107 rb_erase(&cm_id_priv->sidr_id_node, &cm.remote_sidr_table); in ib_send_cm_sidr_rep()
3110 spin_unlock_irqrestore(&cm.lock, flags); in ib_send_cm_sidr_rep()
3352 queue_delayed_work(cm.wq, &work->work, 0); in cm_establish()
3461 queue_delayed_work(cm.wq, &work->work, 0); in cm_recv_handler()
3822 write_lock_irqsave(&cm.device_lock, flags); in cm_add_one()
3823 list_add_tail(&cm_dev->list, &cm.device_list); in cm_add_one()
3824 write_unlock_irqrestore(&cm.device_lock, flags); in cm_add_one()
3858 write_lock_irqsave(&cm.device_lock, flags); in cm_remove_one()
3860 write_unlock_irqrestore(&cm.device_lock, flags); in cm_remove_one()
3866 flush_workqueue(cm.wq); in cm_remove_one()
3877 memset(&cm, 0, sizeof cm); in ib_cm_init()
3878 INIT_LIST_HEAD(&cm.device_list); in ib_cm_init()
3879 rwlock_init(&cm.device_lock); in ib_cm_init()
3880 spin_lock_init(&cm.lock); in ib_cm_init()
3881 cm.listen_service_table = RB_ROOT; in ib_cm_init()
3882 cm.listen_service_id = be64_to_cpu(IB_CM_ASSIGN_SERVICE_ID); in ib_cm_init()
3883 cm.remote_id_table = RB_ROOT; in ib_cm_init()
3884 cm.remote_qp_table = RB_ROOT; in ib_cm_init()
3885 cm.remote_sidr_table = RB_ROOT; in ib_cm_init()
3886 idr_init(&cm.local_id_table); in ib_cm_init()
3887 get_random_bytes(&cm.random_id_operand, sizeof cm.random_id_operand); in ib_cm_init()
3888 INIT_LIST_HEAD(&cm.timewait_list); in ib_cm_init()
3896 cm.wq = create_workqueue("ib_cm"); in ib_cm_init()
3897 if (!cm.wq) { in ib_cm_init()
3908 destroy_workqueue(cm.wq); in ib_cm_init()
3912 idr_destroy(&cm.local_id_table); in ib_cm_init()
3920 spin_lock_irq(&cm.lock); in ib_cm_cleanup()
3921 list_for_each_entry(timewait_info, &cm.timewait_list, list) in ib_cm_cleanup()
3923 spin_unlock_irq(&cm.lock); in ib_cm_cleanup()
3926 destroy_workqueue(cm.wq); in ib_cm_cleanup()
3928 list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) { in ib_cm_cleanup()
3934 idr_destroy(&cm.local_id_table); in ib_cm_cleanup()