Lines Matching refs:sa_dev
1238 struct ib_sa_device *sa_dev; in get_src_path_mask() local
1243 sa_dev = ib_get_client_data(device, &sa_client); in get_src_path_mask()
1244 if (!sa_dev) in get_src_path_mask()
1247 port = &sa_dev->port[port_num - sa_dev->start_port]; in get_src_path_mask()
1471 struct ib_sa_device *sa_dev, in ib_sa_opa_pathrecord_support() argument
1478 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_opa_pathrecord_support()
1506 struct ib_sa_device *sa_dev, in opa_pr_query_possible() argument
1514 if (ib_sa_opa_pathrecord_support(client, sa_dev, port_num)) in opa_pr_query_possible()
1675 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client); in ib_sa_path_rec_get() local
1682 if (!sa_dev) in ib_sa_path_rec_get()
1689 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_path_rec_get()
1698 status = opa_pr_query_possible(client, sa_dev, device, port_num); in ib_sa_path_rec_get()
1803 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client); in ib_sa_service_rec_get() local
1810 if (!sa_dev) in ib_sa_service_rec_get()
1813 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_service_rec_get()
1896 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client); in ib_sa_mcmember_rec_query() local
1902 if (!sa_dev) in ib_sa_mcmember_rec_query()
1905 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_mcmember_rec_query()
1986 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client); in ib_sa_guid_info_rec_query() local
1992 if (!sa_dev) in ib_sa_guid_info_rec_query()
2001 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_guid_info_rec_query()
2375 struct ib_sa_device *sa_dev = in ib_sa_event() local
2376 container_of(handler, typeof(*sa_dev), event_handler); in ib_sa_event()
2377 u32 port_num = event->element.port_num - sa_dev->start_port; in ib_sa_event()
2378 struct ib_sa_port *port = &sa_dev->port[port_num]; in ib_sa_event()
2403 queue_work(ib_wq, &sa_dev->port[port_num].update_task); in ib_sa_event()
2409 struct ib_sa_device *sa_dev; in ib_sa_add_one() local
2417 sa_dev = kzalloc_flex(*sa_dev, port, size_add(size_sub(e, s), 1)); in ib_sa_add_one()
2418 if (!sa_dev) in ib_sa_add_one()
2421 sa_dev->start_port = s; in ib_sa_add_one()
2422 sa_dev->end_port = e; in ib_sa_add_one()
2425 spin_lock_init(&sa_dev->port[i].ah_lock); in ib_sa_add_one()
2429 sa_dev->port[i].sm_ah = NULL; in ib_sa_add_one()
2430 sa_dev->port[i].port_num = i + s; in ib_sa_add_one()
2432 spin_lock_init(&sa_dev->port[i].classport_lock); in ib_sa_add_one()
2433 sa_dev->port[i].classport_info.valid = false; in ib_sa_add_one()
2435 sa_dev->port[i].agent = in ib_sa_add_one()
2439 sa_dev, 0); in ib_sa_add_one()
2440 if (IS_ERR(sa_dev->port[i].agent)) { in ib_sa_add_one()
2441 ret = PTR_ERR(sa_dev->port[i].agent); in ib_sa_add_one()
2445 INIT_WORK(&sa_dev->port[i].update_task, update_sm_ah); in ib_sa_add_one()
2446 INIT_DELAYED_WORK(&sa_dev->port[i].ib_cpi_work, in ib_sa_add_one()
2457 ib_set_client_data(device, &sa_client, sa_dev); in ib_sa_add_one()
2466 INIT_IB_EVENT_HANDLER(&sa_dev->event_handler, device, ib_sa_event); in ib_sa_add_one()
2467 ib_register_event_handler(&sa_dev->event_handler); in ib_sa_add_one()
2471 update_sm_ah(&sa_dev->port[i].update_task); in ib_sa_add_one()
2479 ib_unregister_mad_agent(sa_dev->port[i].agent); in ib_sa_add_one()
2482 kfree(sa_dev); in ib_sa_add_one()
2488 struct ib_sa_device *sa_dev = client_data; in ib_sa_remove_one() local
2491 ib_unregister_event_handler(&sa_dev->event_handler); in ib_sa_remove_one()
2494 for (i = 0; i <= sa_dev->end_port - sa_dev->start_port; ++i) { in ib_sa_remove_one()
2496 cancel_delayed_work_sync(&sa_dev->port[i].ib_cpi_work); in ib_sa_remove_one()
2497 ib_unregister_mad_agent(sa_dev->port[i].agent); in ib_sa_remove_one()
2498 if (sa_dev->port[i].sm_ah) in ib_sa_remove_one()
2499 kref_put(&sa_dev->port[i].sm_ah->ref, free_sm_ah); in ib_sa_remove_one()
2504 kfree(sa_dev); in ib_sa_remove_one()