Lines Matching refs:cm

75 	.name   = "cm",
94 } cm;
221 spinlock_t lock; /* Do not acquire inside cm.lock */
369 read_lock_irqsave(&cm.device_lock, flags);
370 list_for_each_entry(cm_dev, &cm.device_list, list) {
377 read_unlock_irqrestore(&cm.device_lock, flags);
401 spin_lock_irqsave(&cm.lock, flags);
402 ret = idr_get_new_above(&cm.local_id_table, cm_id_priv,
406 spin_unlock_irqrestore(&cm.lock, flags);
407 } while( (ret == -EAGAIN) && idr_pre_get(&cm.local_id_table, GFP_KERNEL) );
409 cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand;
415 spin_lock_irq(&cm.lock);
416 idr_remove(&cm.local_id_table,
417 (__force int) (local_id ^ cm.random_id_operand));
418 spin_unlock_irq(&cm.lock);
425 cm_id_priv = idr_find(&cm.local_id_table,
426 (__force int) (local_id ^ cm.random_id_operand));
441 spin_lock_irq(&cm.lock);
443 spin_unlock_irq(&cm.lock);
510 struct rb_node **link = &cm.listen_service_table.rb_node;
543 rb_insert_color(&cm_id_priv->service_node, &cm.listen_service_table);
551 struct rb_node *node = cm.listen_service_table.rb_node;
583 struct rb_node **link = &cm.remote_id_table.rb_node;
606 rb_insert_color(&timewait_info->remote_id_node, &cm.remote_id_table);
613 struct rb_node *node = cm.remote_id_table.rb_node;
636 struct rb_node **link = &cm.remote_qp_table.rb_node;
659 rb_insert_color(&timewait_info->remote_qp_node, &cm.remote_qp_table);
666 struct rb_node **link = &cm.remote_sidr_table.rb_node;
693 rb_insert_color(&cm_id_priv->sidr_id_node, &cm.remote_sidr_table);
787 rb_erase(&timewait_info->remote_id_node, &cm.remote_id_table);
792 rb_erase(&timewait_info->remote_qp_node, &cm.remote_qp_table);
816 spin_lock_irqsave(&cm.lock, flags);
818 list_add_tail(&cm_id_priv->timewait_info->list, &cm.timewait_list);
819 spin_unlock_irqrestore(&cm.lock, flags);
828 queue_delayed_work(cm.wq, &cm_id_priv->timewait_info->work.work,
839 spin_lock_irqsave(&cm.lock, flags);
841 spin_unlock_irqrestore(&cm.lock, flags);
859 spin_lock_irq(&cm.lock);
860 rb_erase(&cm_id_priv->service_node, &cm.listen_service_table);
861 spin_unlock_irq(&cm.lock);
967 spin_lock_irqsave(&cm.lock, flags);
969 cm_id->service_id = cpu_to_be64(cm.listen_service_id++);
976 spin_unlock_irqrestore(&cm.lock, flags);
1467 spin_lock_irq(&cm.lock);
1472 spin_unlock_irq(&cm.lock);
1484 spin_unlock_irq(&cm.lock);
1497 spin_unlock_irq(&cm.lock);
1507 spin_unlock_irq(&cm.lock);
1865 spin_lock(&cm.lock);
1868 spin_unlock(&cm.lock);
1876 &cm.remote_id_table);
1878 spin_unlock(&cm.lock);
1886 spin_unlock(&cm.lock);
2331 spin_lock_irq(&cm.lock);
2335 spin_unlock_irq(&cm.lock);
2338 cm_id_priv = idr_find(&cm.local_id_table, (__force int)
2340 cm.random_id_operand));
2347 spin_unlock_irq(&cm.lock);
2882 spin_lock_irq(&cm.lock);
2884 spin_unlock_irq(&cm.lock);
3023 spin_lock_irq(&cm.lock);
3026 spin_unlock_irq(&cm.lock);
3036 spin_unlock_irq(&cm.lock);
3041 spin_unlock_irq(&cm.lock);
3112 spin_lock_irqsave(&cm.lock, flags);
3113 rb_erase(&cm_id_priv->sidr_id_node, &cm.remote_sidr_table);
3114 spin_unlock_irqrestore(&cm.lock, flags);
3356 queue_delayed_work(cm.wq, &work->work, 0);
3465 queue_delayed_work(cm.wq, &work->work, 0);
3783 write_lock_irqsave(&cm.device_lock, flags);
3784 list_add_tail(&cm_dev->list, &cm.device_list);
3785 write_unlock_irqrestore(&cm.device_lock, flags);
3819 write_lock_irqsave(&cm.device_lock, flags);
3821 write_unlock_irqrestore(&cm.device_lock, flags);
3827 flush_workqueue(cm.wq);
3838 memset(&cm, 0, sizeof cm);
3839 INIT_LIST_HEAD(&cm.device_list);
3840 rwlock_init(&cm.device_lock);
3841 spin_lock_init(&cm.lock);
3842 cm.listen_service_table = RB_ROOT;
3843 cm.listen_service_id = be64_to_cpu(IB_CM_ASSIGN_SERVICE_ID);
3844 cm.remote_id_table = RB_ROOT;
3845 cm.remote_qp_table = RB_ROOT;
3846 cm.remote_sidr_table = RB_ROOT;
3847 idr_init(&cm.local_id_table);
3848 get_random_bytes(&cm.random_id_operand, sizeof cm.random_id_operand);
3849 idr_pre_get(&cm.local_id_table, GFP_KERNEL);
3850 INIT_LIST_HEAD(&cm.timewait_list);
3856 cm.wq = create_workqueue("ib_cm");
3857 if (!cm.wq) {
3868 destroy_workqueue(cm.wq);
3878 spin_lock_irq(&cm.lock);
3879 list_for_each_entry(timewait_info, &cm.timewait_list, list)
3881 spin_unlock_irq(&cm.lock);
3884 destroy_workqueue(cm.wq);
3886 list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) {
3892 idr_destroy(&cm.local_id_table);