Lines Matching refs:sriov
80 guid_indexes = be64_to_cpu((__force __be64) dev->sriov.alias_guid. in mlx4_ib_update_cache_on_guid_change()
96 memcpy(&dev->sriov.demux[port_index].guid_cache[slave_id], in mlx4_ib_update_cache_on_guid_change()
111 return *(__be64 *)&dev->sriov.demux[port - 1].guid_cache[index]; in get_cached_alias_guid()
144 guid_indexes = be64_to_cpu((__force __be64) dev->sriov.alias_guid. in mlx4_ib_notify_slaves_on_guid_change()
214 rec = &dev->sriov.alias_guid.ports_guid[port_index]. in aliasguid_query_handler()
234 rec = &dev->sriov.alias_guid.ports_guid[port_index]. in aliasguid_query_handler()
297 spin_lock_irqsave(&dev->sriov.going_down_lock, flags); in aliasguid_query_handler()
298 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in aliasguid_query_handler()
299 if (!dev->sriov.is_going_down) in aliasguid_query_handler()
300 queue_delayed_work(dev->sriov.alias_guid.ports_guid[port_index].wq, in aliasguid_query_handler()
301 &dev->sriov.alias_guid.ports_guid[port_index]. in aliasguid_query_handler()
308 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in aliasguid_query_handler()
309 spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags); in aliasguid_query_handler()
318 dev->sriov.alias_guid.ports_guid[port - 1].all_rec_per_port[index].status in invalidate_guid_record()
320 dev->sriov.alias_guid.ports_guid[port - 1].all_rec_per_port[index].method in invalidate_guid_record()
326 *(u64 *)&dev->sriov.alias_guid.ports_guid[port - 1]. in invalidate_guid_record()
336 MLX4_GUID_NONE_ASSIGN == dev->sriov.alias_guid. in invalidate_guid_record()
341 dev->sriov.alias_guid.ports_guid[port - 1]. in invalidate_guid_record()
357 &dev->sriov.alias_guid.ports_guid[port - 1].cb_list; in set_guid_rec()
394 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
396 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
399 ib_sa_guid_info_rec_query(dev->sriov.alias_guid.sa_client, in set_guid_rec()
409 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
412 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
421 spin_lock_irqsave(&dev->sriov.going_down_lock, flags); in set_guid_rec()
422 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
424 if (!dev->sriov.is_going_down) { in set_guid_rec()
425 queue_delayed_work(dev->sriov.alias_guid.ports_guid[port - 1].wq, in set_guid_rec()
426 &dev->sriov.alias_guid.ports_guid[port - 1].alias_guid_work, in set_guid_rec()
429 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in set_guid_rec()
430 spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags); in set_guid_rec()
443 spin_lock_irqsave(&dev->sriov.going_down_lock, flags); in mlx4_ib_invalidate_all_guid_record()
444 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in mlx4_ib_invalidate_all_guid_record()
448 if (mlx4_is_master(dev->dev) && !dev->sriov.is_going_down) { in mlx4_ib_invalidate_all_guid_record()
454 cancel_delayed_work(&dev->sriov.alias_guid. in mlx4_ib_invalidate_all_guid_record()
456 queue_delayed_work(dev->sriov.alias_guid.ports_guid[port - 1].wq, in mlx4_ib_invalidate_all_guid_record()
457 &dev->sriov.alias_guid.ports_guid[port - 1].alias_guid_work, in mlx4_ib_invalidate_all_guid_record()
460 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in mlx4_ib_invalidate_all_guid_record()
461 spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags); in mlx4_ib_invalidate_all_guid_record()
473 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags); in get_next_record_to_update()
474 if (dev->sriov.alias_guid.ports_guid[port].all_rec_per_port[j].status == in get_next_record_to_update()
477 &dev->sriov.alias_guid.ports_guid[port].all_rec_per_port[j], in get_next_record_to_update()
481 dev->sriov.alias_guid.ports_guid[port].all_rec_per_port[j].status = in get_next_record_to_update()
483 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags); in get_next_record_to_update()
486 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags); in get_next_record_to_update()
495 dev->sriov.alias_guid.ports_guid[port].all_rec_per_port[rec_index].guid_indexes = in set_administratively_guid_record()
497 memcpy(dev->sriov.alias_guid.ports_guid[port].all_rec_per_port[rec_index].all_recs, in set_administratively_guid_record()
499 dev->sriov.alias_guid.ports_guid[port].all_rec_per_port[rec_index].status = in set_administratively_guid_record()
532 struct mlx4_ib_dev *dev = container_of(ib_sriov, struct mlx4_ib_dev, sriov); in alias_guid_work()
561 spin_lock_irqsave(&dev->sriov.going_down_lock, flags); in mlx4_ib_init_alias_guid_work()
562 spin_lock_irqsave(&dev->sriov.alias_guid.ag_work_lock, flags1); in mlx4_ib_init_alias_guid_work()
563 if (!dev->sriov.is_going_down) { in mlx4_ib_init_alias_guid_work()
564 queue_delayed_work(dev->sriov.alias_guid.ports_guid[port].wq, in mlx4_ib_init_alias_guid_work()
565 &dev->sriov.alias_guid.ports_guid[port].alias_guid_work, 0); in mlx4_ib_init_alias_guid_work()
567 spin_unlock_irqrestore(&dev->sriov.alias_guid.ag_work_lock, flags1); in mlx4_ib_init_alias_guid_work()
568 spin_unlock_irqrestore(&dev->sriov.going_down_lock, flags); in mlx4_ib_init_alias_guid_work()
574 struct mlx4_ib_sriov *sriov = &dev->sriov; in mlx4_ib_destroy_alias_guid_service() local
581 cancel_delayed_work(&dev->sriov.alias_guid.ports_guid[i].alias_guid_work); in mlx4_ib_destroy_alias_guid_service()
582 det = &sriov->alias_guid.ports_guid[i]; in mlx4_ib_destroy_alias_guid_service()
583 spin_lock_irqsave(&sriov->alias_guid.ag_work_lock, flags); in mlx4_ib_destroy_alias_guid_service()
591 spin_unlock_irqrestore(&sriov->alias_guid.ag_work_lock, flags); in mlx4_ib_destroy_alias_guid_service()
595 spin_lock_irqsave(&sriov->alias_guid.ag_work_lock, flags); in mlx4_ib_destroy_alias_guid_service()
597 spin_unlock_irqrestore(&sriov->alias_guid.ag_work_lock, flags); in mlx4_ib_destroy_alias_guid_service()
600 flush_workqueue(dev->sriov.alias_guid.ports_guid[i].wq); in mlx4_ib_destroy_alias_guid_service()
601 destroy_workqueue(dev->sriov.alias_guid.ports_guid[i].wq); in mlx4_ib_destroy_alias_guid_service()
603 ib_sa_unregister_client(dev->sriov.alias_guid.sa_client); in mlx4_ib_destroy_alias_guid_service()
604 kfree(dev->sriov.alias_guid.sa_client); in mlx4_ib_destroy_alias_guid_service()
616 dev->sriov.alias_guid.sa_client = in mlx4_ib_init_alias_guid_service()
617 kzalloc(sizeof *dev->sriov.alias_guid.sa_client, GFP_KERNEL); in mlx4_ib_init_alias_guid_service()
618 if (!dev->sriov.alias_guid.sa_client) in mlx4_ib_init_alias_guid_service()
621 ib_sa_register_client(dev->sriov.alias_guid.sa_client); in mlx4_ib_init_alias_guid_service()
623 spin_lock_init(&dev->sriov.alias_guid.ag_work_lock); in mlx4_ib_init_alias_guid_service()
633 memset(&dev->sriov.alias_guid.ports_guid[i], 0, in mlx4_ib_init_alias_guid_service()
638 dev->sriov.alias_guid.ports_guid[i]. in mlx4_ib_init_alias_guid_service()
643 dev->sriov.alias_guid.ports_guid[i].all_rec_per_port[j]. in mlx4_ib_init_alias_guid_service()
648 *(__be64 *)&dev->sriov.alias_guid.ports_guid[i]. in mlx4_ib_init_alias_guid_service()
653 INIT_LIST_HEAD(&dev->sriov.alias_guid.ports_guid[i].cb_list); in mlx4_ib_init_alias_guid_service()
658 dev->sriov.alias_guid.ports_guid[i].parent = &dev->sriov.alias_guid; in mlx4_ib_init_alias_guid_service()
659 dev->sriov.alias_guid.ports_guid[i].port = i; in mlx4_ib_init_alias_guid_service()
664 dev->sriov.alias_guid.ports_guid[i].wq = in mlx4_ib_init_alias_guid_service()
666 if (!dev->sriov.alias_guid.ports_guid[i].wq) { in mlx4_ib_init_alias_guid_service()
670 INIT_DELAYED_WORK(&dev->sriov.alias_guid.ports_guid[i].alias_guid_work, in mlx4_ib_init_alias_guid_service()
677 destroy_workqueue(dev->sriov.alias_guid.ports_guid[i].wq); in mlx4_ib_init_alias_guid_service()
678 dev->sriov.alias_guid.ports_guid[i].wq = NULL; in mlx4_ib_init_alias_guid_service()
682 ib_sa_unregister_client(dev->sriov.alias_guid.sa_client); in mlx4_ib_init_alias_guid_service()
683 kfree(dev->sriov.alias_guid.sa_client); in mlx4_ib_init_alias_guid_service()
684 dev->sriov.alias_guid.sa_client = NULL; in mlx4_ib_init_alias_guid_service()