Lines Matching refs:sriov
86 guid_indexes = be64_to_cpu((__force __be64) dev->sriov.alias_guid. in mlx4_ib_update_cache_on_guid_change()
102 memcpy(&dev->sriov.demux[port_index].guid_cache[slave_id], in mlx4_ib_update_cache_on_guid_change()
117 return *(__be64 *)&dev->sriov.demux[port - 1].guid_cache[index]; in get_cached_alias_guid()
136 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags); in mlx4_ib_slave_alias_guid_event()
137 if (dev->sriov.alias_guid.ports_guid[port_index].state_flags & in mlx4_ib_slave_alias_guid_event()
141 curr_guid = *(__be64 *)&dev->sriov. in mlx4_ib_slave_alias_guid_event()
154 *(__be64 *)&dev->sriov.alias_guid.ports_guid[port_index]. in mlx4_ib_slave_alias_guid_event()
157 dev->sriov.alias_guid.ports_guid[port_index]. in mlx4_ib_slave_alias_guid_event()
160 dev->sriov.alias_guid.ports_guid[port_index]. in mlx4_ib_slave_alias_guid_event()
164 dev->sriov.alias_guid.ports_guid[port_index]. in mlx4_ib_slave_alias_guid_event()
166 dev->sriov.alias_guid.ports_guid[port_index]. in mlx4_ib_slave_alias_guid_event()
171 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags); in mlx4_ib_slave_alias_guid_event()
204 rec = &dev->sriov.alias_guid.ports_guid[port_num - 1]. in mlx4_ib_notify_slaves_on_guid_change()
206 guid_indexes = be64_to_cpu((__force __be64) dev->sriov.alias_guid. in mlx4_ib_notify_slaves_on_guid_change()
236 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags); in mlx4_ib_notify_slaves_on_guid_change()
248 spin_unlock_irqrestore(&dev->sriov. in mlx4_ib_notify_slaves_on_guid_change()
253 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, in mlx4_ib_notify_slaves_on_guid_change()
307 rec = &dev->sriov.alias_guid.ports_guid[port_index]. in aliasguid_query_handler()
327 rec = &dev->sriov.alias_guid.ports_guid[port_index]. in aliasguid_query_handler()
330 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags); in aliasguid_query_handler()
424 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags); in aliasguid_query_handler()
434 spin_lock_irqsave(&dev->sriov.going_down_lock, flags); in aliasguid_query_handler()
435 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in aliasguid_query_handler()
436 if (!dev->sriov.is_going_down) { in aliasguid_query_handler()
438 queue_delayed_work(dev->sriov.alias_guid.ports_guid[port_index].wq, in aliasguid_query_handler()
439 &dev->sriov.alias_guid.ports_guid[port_index]. in aliasguid_query_handler()
448 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in aliasguid_query_handler()
449 spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags); in aliasguid_query_handler()
458 dev->sriov.alias_guid.ports_guid[port - 1].all_rec_per_port[index].status in invalidate_guid_record()
464 *(u64 *)&dev->sriov.alias_guid.ports_guid[port - 1]. in invalidate_guid_record()
477 dev->sriov.alias_guid.ports_guid[port - 1]. in invalidate_guid_record()
479 if (dev->sriov.alias_guid.ports_guid[port - 1]. in invalidate_guid_record()
481 dev->sriov.alias_guid.ports_guid[port - 1]. in invalidate_guid_record()
500 &dev->sriov.alias_guid.ports_guid[port - 1].cb_list; in set_guid_rec()
539 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
541 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
544 ib_sa_guid_info_rec_query(dev->sriov.alias_guid.sa_client, in set_guid_rec()
554 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
557 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
566 spin_lock_irqsave(&dev->sriov.going_down_lock, flags); in set_guid_rec()
567 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
569 if (!dev->sriov.is_going_down) { in set_guid_rec()
570 queue_delayed_work(dev->sriov.alias_guid.ports_guid[port - 1].wq, in set_guid_rec()
571 &dev->sriov.alias_guid.ports_guid[port - 1].alias_guid_work, in set_guid_rec()
574 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
575 spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags); in set_guid_rec()
595 *(__be64 *)&dev->sriov.alias_guid.ports_guid[port - 1]. in mlx4_ib_guid_port_init()
612 spin_lock_irqsave(&dev->sriov.going_down_lock, flags); in mlx4_ib_invalidate_all_guid_record()
613 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in mlx4_ib_invalidate_all_guid_record()
615 if (dev->sriov.alias_guid.ports_guid[port - 1].state_flags & in mlx4_ib_invalidate_all_guid_record()
618 dev->sriov.alias_guid.ports_guid[port - 1].state_flags &= in mlx4_ib_invalidate_all_guid_record()
624 if (mlx4_is_master(dev->dev) && !dev->sriov.is_going_down) { in mlx4_ib_invalidate_all_guid_record()
630 cancel_delayed_work(&dev->sriov.alias_guid. in mlx4_ib_invalidate_all_guid_record()
632 queue_delayed_work(dev->sriov.alias_guid.ports_guid[port - 1].wq, in mlx4_ib_invalidate_all_guid_record()
633 &dev->sriov.alias_guid.ports_guid[port - 1].alias_guid_work, in mlx4_ib_invalidate_all_guid_record()
636 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in mlx4_ib_invalidate_all_guid_record()
637 spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags); in mlx4_ib_invalidate_all_guid_record()
650 &dev->sriov.alias_guid.ports_guid[port]. in set_required_record()
699 rec = dev->sriov.alias_guid.ports_guid[port]. in get_low_record_time_index()
729 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags); in get_next_record_to_update()
739 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags); in get_next_record_to_update()
755 struct mlx4_ib_dev *dev = container_of(ib_sriov, struct mlx4_ib_dev, sriov); in alias_guid_work()
782 spin_lock_irqsave(&dev->sriov.going_down_lock, flags); in mlx4_ib_init_alias_guid_work()
783 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in mlx4_ib_init_alias_guid_work()
784 if (!dev->sriov.is_going_down) { in mlx4_ib_init_alias_guid_work()
789 cancel_delayed_work(&dev->sriov.alias_guid.ports_guid[port]. in mlx4_ib_init_alias_guid_work()
791 queue_delayed_work(dev->sriov.alias_guid.ports_guid[port].wq, in mlx4_ib_init_alias_guid_work()
792 &dev->sriov.alias_guid.ports_guid[port].alias_guid_work, 0); in mlx4_ib_init_alias_guid_work()
794 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in mlx4_ib_init_alias_guid_work()
795 spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags); in mlx4_ib_init_alias_guid_work()
801 struct mlx4_ib_sriov *sriov = &dev->sriov; in mlx4_ib_destroy_alias_guid_service() local
808 cancel_delayed_work(&dev->sriov.alias_guid.ports_guid[i].alias_guid_work); in mlx4_ib_destroy_alias_guid_service()
809 det = &sriov->alias_guid.ports_guid[i]; in mlx4_ib_destroy_alias_guid_service()
810 spin_lock_irqsave(&sriov->alias_guid.ag_work_lock, flags); in mlx4_ib_destroy_alias_guid_service()
818 spin_unlock_irqrestore(&sriov->alias_guid.ag_work_lock, flags); in mlx4_ib_destroy_alias_guid_service()
822 spin_lock_irqsave(&sriov->alias_guid.ag_work_lock, flags); in mlx4_ib_destroy_alias_guid_service()
824 spin_unlock_irqrestore(&sriov->alias_guid.ag_work_lock, flags); in mlx4_ib_destroy_alias_guid_service()
827 flush_workqueue(dev->sriov.alias_guid.ports_guid[i].wq); in mlx4_ib_destroy_alias_guid_service()
828 destroy_workqueue(dev->sriov.alias_guid.ports_guid[i].wq); in mlx4_ib_destroy_alias_guid_service()
830 ib_sa_unregister_client(dev->sriov.alias_guid.sa_client); in mlx4_ib_destroy_alias_guid_service()
831 kfree(dev->sriov.alias_guid.sa_client); in mlx4_ib_destroy_alias_guid_service()
843 dev->sriov.alias_guid.sa_client = in mlx4_ib_init_alias_guid_service()
844 kzalloc(sizeof *dev->sriov.alias_guid.sa_client, GFP_KERNEL); in mlx4_ib_init_alias_guid_service()
845 if (!dev->sriov.alias_guid.sa_client) in mlx4_ib_init_alias_guid_service()
848 ib_sa_register_client(dev->sriov.alias_guid.sa_client); in mlx4_ib_init_alias_guid_service()
850 spin_lock_init(&dev->sriov.alias_guid.ag_work_lock); in mlx4_ib_init_alias_guid_service()
860 memset(&dev->sriov.alias_guid.ports_guid[i], 0, in mlx4_ib_init_alias_guid_service()
862 dev->sriov.alias_guid.ports_guid[i].state_flags |= in mlx4_ib_init_alias_guid_service()
866 memset(dev->sriov.alias_guid.ports_guid[i]. in mlx4_ib_init_alias_guid_service()
868 sizeof(dev->sriov.alias_guid.ports_guid[i]. in mlx4_ib_init_alias_guid_service()
871 INIT_LIST_HEAD(&dev->sriov.alias_guid.ports_guid[i].cb_list); in mlx4_ib_init_alias_guid_service()
879 dev->sriov.alias_guid.ports_guid[i].parent = &dev->sriov.alias_guid; in mlx4_ib_init_alias_guid_service()
880 dev->sriov.alias_guid.ports_guid[i].port = i; in mlx4_ib_init_alias_guid_service()
883 dev->sriov.alias_guid.ports_guid[i].wq = in mlx4_ib_init_alias_guid_service()
885 if (!dev->sriov.alias_guid.ports_guid[i].wq) { in mlx4_ib_init_alias_guid_service()
889 INIT_DELAYED_WORK(&dev->sriov.alias_guid.ports_guid[i].alias_guid_work, in mlx4_ib_init_alias_guid_service()
896 destroy_workqueue(dev->sriov.alias_guid.ports_guid[i].wq); in mlx4_ib_init_alias_guid_service()
897 dev->sriov.alias_guid.ports_guid[i].wq = NULL; in mlx4_ib_init_alias_guid_service()
901 ib_sa_unregister_client(dev->sriov.alias_guid.sa_client); in mlx4_ib_init_alias_guid_service()
902 kfree(dev->sriov.alias_guid.sa_client); in mlx4_ib_init_alias_guid_service()
903 dev->sriov.alias_guid.sa_client = NULL; in mlx4_ib_init_alias_guid_service()