Lines Matching defs:cm

72 	.name   = "cm",
91 } cm;
220 spinlock_t lock; /* Do not acquire inside cm.lock */
385 read_lock_irqsave(&cm.device_lock, flags);
386 list_for_each_entry(cm_dev, &cm.device_list, list) {
393 read_unlock_irqrestore(&cm.device_lock, flags);
420 spin_lock_irqsave(&cm.lock, flags);
421 ret = idr_get_new_above(&cm.local_id_table, cm_id_priv,
425 spin_unlock_irqrestore(&cm.lock, flags);
426 } while( (ret == -EAGAIN) && idr_pre_get(&cm.local_id_table, GFP_KERNEL) );
428 cm_id_priv->id.local_id = (__force __be32)id ^ cm.random_id_operand;
434 spin_lock_irq(&cm.lock);
435 idr_remove(&cm.local_id_table,
436 (__force int) (local_id ^ cm.random_id_operand));
437 spin_unlock_irq(&cm.lock);
444 cm_id_priv = idr_find(&cm.local_id_table,
445 (__force int) (local_id ^ cm.random_id_operand));
460 spin_lock_irq(&cm.lock);
462 spin_unlock_irq(&cm.lock);
529 struct rb_node **link = &cm.listen_service_table.rb_node;
562 rb_insert_color(&cm_id_priv->service_node, &cm.listen_service_table);
570 struct rb_node *node = cm.listen_service_table.rb_node;
602 struct rb_node **link = &cm.remote_id_table.rb_node;
625 rb_insert_color(&timewait_info->remote_id_node, &cm.remote_id_table);
632 struct rb_node *node = cm.remote_id_table.rb_node;
655 struct rb_node **link = &cm.remote_qp_table.rb_node;
678 rb_insert_color(&timewait_info->remote_qp_node, &cm.remote_qp_table);
685 struct rb_node **link = &cm.remote_sidr_table.rb_node;
712 rb_insert_color(&cm_id_priv->sidr_id_node, &cm.remote_sidr_table);
806 rb_erase(&timewait_info->remote_id_node, &cm.remote_id_table);
811 rb_erase(&timewait_info->remote_qp_node, &cm.remote_qp_table);
835 spin_lock_irqsave(&cm.lock, flags);
837 list_add_tail(&cm_id_priv->timewait_info->list, &cm.timewait_list);
838 spin_unlock_irqrestore(&cm.lock, flags);
847 queue_delayed_work(cm.wq, &cm_id_priv->timewait_info->work.work,
858 spin_lock_irqsave(&cm.lock, flags);
860 spin_unlock_irqrestore(&cm.lock, flags);
878 spin_lock_irq(&cm.lock);
879 rb_erase(&cm_id_priv->service_node, &cm.listen_service_table);
880 spin_unlock_irq(&cm.lock);
988 spin_lock_irqsave(&cm.lock, flags);
990 cm_id->service_id = cpu_to_be64(cm.listen_service_id++);
997 spin_unlock_irqrestore(&cm.lock, flags);
1478 spin_lock_irq(&cm.lock);
1483 spin_unlock_irq(&cm.lock);
1495 spin_unlock_irq(&cm.lock);
1508 spin_unlock_irq(&cm.lock);
1518 spin_unlock_irq(&cm.lock);
1884 spin_lock(&cm.lock);
1887 spin_unlock(&cm.lock);
1896 &cm.remote_id_table);
1898 spin_unlock(&cm.lock);
1907 spin_unlock(&cm.lock);
2365 spin_lock_irq(&cm.lock);
2369 spin_unlock_irq(&cm.lock);
2372 cm_id_priv = idr_find(&cm.local_id_table, (__force int)
2374 cm.random_id_operand));
2381 spin_unlock_irq(&cm.lock);
2923 spin_lock_irq(&cm.lock);
2925 spin_unlock_irq(&cm.lock);
3059 spin_lock_irq(&cm.lock);
3062 spin_unlock_irq(&cm.lock);
3072 spin_unlock_irq(&cm.lock);
3078 spin_unlock_irq(&cm.lock);
3149 spin_lock_irqsave(&cm.lock, flags);
3150 rb_erase(&cm_id_priv->sidr_id_node, &cm.remote_sidr_table);
3151 spin_unlock_irqrestore(&cm.lock, flags);
3395 queue_delayed_work(cm.wq, &work->work, 0);
3504 queue_delayed_work(cm.wq, &work->work, 0);
3867 write_lock_irqsave(&cm.device_lock, flags);
3868 list_add_tail(&cm_dev->list, &cm.device_list);
3869 write_unlock_irqrestore(&cm.device_lock, flags);
3903 write_lock_irqsave(&cm.device_lock, flags);
3905 write_unlock_irqrestore(&cm.device_lock, flags);
3911 flush_workqueue(cm.wq);
3922 memset(&cm, 0, sizeof cm);
3923 INIT_LIST_HEAD(&cm.device_list);
3924 rwlock_init(&cm.device_lock);
3925 spin_lock_init(&cm.lock);
3926 cm.listen_service_table = RB_ROOT;
3927 cm.listen_service_id = be64_to_cpu(IB_CM_ASSIGN_SERVICE_ID);
3928 cm.remote_id_table = RB_ROOT;
3929 cm.remote_qp_table = RB_ROOT;
3930 cm.remote_sidr_table = RB_ROOT;
3931 idr_init(&cm.local_id_table);
3932 get_random_bytes(&cm.random_id_operand, sizeof cm.random_id_operand);
3933 if (!idr_pre_get(&cm.local_id_table, GFP_KERNEL))
3935 INIT_LIST_HEAD(&cm.timewait_list);
3943 cm.wq = create_workqueue("ib_cm");
3944 if (!cm.wq) {
3955 destroy_workqueue(cm.wq);
3959 idr_destroy(&cm.local_id_table);
3967 spin_lock_irq(&cm.lock);
3968 list_for_each_entry(timewait_info, &cm.timewait_list, list)
3970 spin_unlock_irq(&cm.lock);
3973 destroy_workqueue(cm.wq);
3975 list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) {
3981 idr_destroy(&cm.local_id_table);