Lines Matching refs:sa_dev

1183 	struct ib_sa_device *sa_dev;  in get_src_path_mask()  local
1188 sa_dev = ib_get_client_data(device, &sa_client); in get_src_path_mask()
1189 if (!sa_dev) in get_src_path_mask()
1192 port = &sa_dev->port[port_num - sa_dev->start_port]; in get_src_path_mask()
1402 struct ib_sa_device *sa_dev, in ib_sa_opa_pathrecord_support() argument
1409 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_opa_pathrecord_support()
1437 struct ib_sa_device *sa_dev, in opa_pr_query_possible() argument
1445 if (ib_sa_opa_pathrecord_support(client, sa_dev, port_num)) in opa_pr_query_possible()
1586 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client); in ib_sa_path_rec_get() local
1593 if (!sa_dev) in ib_sa_path_rec_get()
1600 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_path_rec_get()
1609 status = opa_pr_query_possible(client, sa_dev, device, port_num); in ib_sa_path_rec_get()
1714 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client); in ib_sa_mcmember_rec_query() local
1720 if (!sa_dev) in ib_sa_mcmember_rec_query()
1723 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_mcmember_rec_query()
1805 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client); in ib_sa_guid_info_rec_query() local
1811 if (!sa_dev) in ib_sa_guid_info_rec_query()
1820 port = &sa_dev->port[port_num - sa_dev->start_port]; in ib_sa_guid_info_rec_query()
2181 struct ib_sa_device *sa_dev = in ib_sa_event() local
2182 container_of(handler, typeof(*sa_dev), event_handler); in ib_sa_event()
2183 u32 port_num = event->element.port_num - sa_dev->start_port; in ib_sa_event()
2184 struct ib_sa_port *port = &sa_dev->port[port_num]; in ib_sa_event()
2209 queue_work(ib_wq, &sa_dev->port[port_num].update_task); in ib_sa_event()
2215 struct ib_sa_device *sa_dev; in ib_sa_add_one() local
2223 sa_dev = kzalloc(struct_size(sa_dev, port, e - s + 1), GFP_KERNEL); in ib_sa_add_one()
2224 if (!sa_dev) in ib_sa_add_one()
2227 sa_dev->start_port = s; in ib_sa_add_one()
2228 sa_dev->end_port = e; in ib_sa_add_one()
2231 spin_lock_init(&sa_dev->port[i].ah_lock); in ib_sa_add_one()
2235 sa_dev->port[i].sm_ah = NULL; in ib_sa_add_one()
2236 sa_dev->port[i].port_num = i + s; in ib_sa_add_one()
2238 spin_lock_init(&sa_dev->port[i].classport_lock); in ib_sa_add_one()
2239 sa_dev->port[i].classport_info.valid = false; in ib_sa_add_one()
2241 sa_dev->port[i].agent = in ib_sa_add_one()
2244 recv_handler, sa_dev, 0); in ib_sa_add_one()
2245 if (IS_ERR(sa_dev->port[i].agent)) { in ib_sa_add_one()
2246 ret = PTR_ERR(sa_dev->port[i].agent); in ib_sa_add_one()
2250 INIT_WORK(&sa_dev->port[i].update_task, update_sm_ah); in ib_sa_add_one()
2251 INIT_DELAYED_WORK(&sa_dev->port[i].ib_cpi_work, in ib_sa_add_one()
2262 ib_set_client_data(device, &sa_client, sa_dev); in ib_sa_add_one()
2271 INIT_IB_EVENT_HANDLER(&sa_dev->event_handler, device, ib_sa_event); in ib_sa_add_one()
2272 ib_register_event_handler(&sa_dev->event_handler); in ib_sa_add_one()
2276 update_sm_ah(&sa_dev->port[i].update_task); in ib_sa_add_one()
2284 ib_unregister_mad_agent(sa_dev->port[i].agent); in ib_sa_add_one()
2287 kfree(sa_dev); in ib_sa_add_one()
2293 struct ib_sa_device *sa_dev = client_data; in ib_sa_remove_one() local
2296 ib_unregister_event_handler(&sa_dev->event_handler); in ib_sa_remove_one()
2299 for (i = 0; i <= sa_dev->end_port - sa_dev->start_port; ++i) { in ib_sa_remove_one()
2301 cancel_delayed_work_sync(&sa_dev->port[i].ib_cpi_work); in ib_sa_remove_one()
2302 ib_unregister_mad_agent(sa_dev->port[i].agent); in ib_sa_remove_one()
2303 if (sa_dev->port[i].sm_ah) in ib_sa_remove_one()
2304 kref_put(&sa_dev->port[i].sm_ah->ref, free_sm_ah); in ib_sa_remove_one()
2309 kfree(sa_dev); in ib_sa_remove_one()