sa_dev           1203 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev;
sa_dev           1208 drivers/infiniband/core/sa_query.c 	sa_dev = ib_get_client_data(device, &sa_client);
sa_dev           1209 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           1212 drivers/infiniband/core/sa_query.c 	port  = &sa_dev->port[port_num - sa_dev->start_port];
sa_dev           1418 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
sa_dev           1423 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           1426 drivers/infiniband/core/sa_query.c 	port = &sa_dev->port[port_num - sa_dev->start_port];
sa_dev           1554 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
sa_dev           1561 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           1568 drivers/infiniband/core/sa_query.c 	port  = &sa_dev->port[port_num - sa_dev->start_port];
sa_dev           1708 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
sa_dev           1714 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           1717 drivers/infiniband/core/sa_query.c 	port  = &sa_dev->port[port_num - sa_dev->start_port];
sa_dev           1805 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
sa_dev           1811 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           1814 drivers/infiniband/core/sa_query.c 	port  = &sa_dev->port[port_num - sa_dev->start_port];
sa_dev           1896 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
sa_dev           1902 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           1911 drivers/infiniband/core/sa_query.c 	port  = &sa_dev->port[port_num - sa_dev->start_port];
sa_dev           1964 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
sa_dev           1969 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           1972 drivers/infiniband/core/sa_query.c 	port  = &sa_dev->port[port_num - sa_dev->start_port];
sa_dev           2296 drivers/infiniband/core/sa_query.c 		struct ib_sa_device *sa_dev =
sa_dev           2297 drivers/infiniband/core/sa_query.c 			container_of(handler, typeof(*sa_dev), event_handler);
sa_dev           2298 drivers/infiniband/core/sa_query.c 		u8 port_num = event->element.port_num - sa_dev->start_port;
sa_dev           2299 drivers/infiniband/core/sa_query.c 		struct ib_sa_port *port = &sa_dev->port[port_num];
sa_dev           2324 drivers/infiniband/core/sa_query.c 		queue_work(ib_wq, &sa_dev->port[port_num].update_task);
sa_dev           2330 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev;
sa_dev           2337 drivers/infiniband/core/sa_query.c 	sa_dev = kzalloc(struct_size(sa_dev, port, e - s + 1), GFP_KERNEL);
sa_dev           2338 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           2341 drivers/infiniband/core/sa_query.c 	sa_dev->start_port = s;
sa_dev           2342 drivers/infiniband/core/sa_query.c 	sa_dev->end_port   = e;
sa_dev           2345 drivers/infiniband/core/sa_query.c 		spin_lock_init(&sa_dev->port[i].ah_lock);
sa_dev           2349 drivers/infiniband/core/sa_query.c 		sa_dev->port[i].sm_ah    = NULL;
sa_dev           2350 drivers/infiniband/core/sa_query.c 		sa_dev->port[i].port_num = i + s;
sa_dev           2352 drivers/infiniband/core/sa_query.c 		spin_lock_init(&sa_dev->port[i].classport_lock);
sa_dev           2353 drivers/infiniband/core/sa_query.c 		sa_dev->port[i].classport_info.valid = false;
sa_dev           2355 drivers/infiniband/core/sa_query.c 		sa_dev->port[i].agent =
sa_dev           2358 drivers/infiniband/core/sa_query.c 					      recv_handler, sa_dev, 0);
sa_dev           2359 drivers/infiniband/core/sa_query.c 		if (IS_ERR(sa_dev->port[i].agent))
sa_dev           2362 drivers/infiniband/core/sa_query.c 		INIT_WORK(&sa_dev->port[i].update_task, update_sm_ah);
sa_dev           2363 drivers/infiniband/core/sa_query.c 		INIT_DELAYED_WORK(&sa_dev->port[i].ib_cpi_work,
sa_dev           2372 drivers/infiniband/core/sa_query.c 	ib_set_client_data(device, &sa_client, sa_dev);
sa_dev           2381 drivers/infiniband/core/sa_query.c 	INIT_IB_EVENT_HANDLER(&sa_dev->event_handler, device, ib_sa_event);
sa_dev           2382 drivers/infiniband/core/sa_query.c 	ib_register_event_handler(&sa_dev->event_handler);
sa_dev           2386 drivers/infiniband/core/sa_query.c 			update_sm_ah(&sa_dev->port[i].update_task);
sa_dev           2394 drivers/infiniband/core/sa_query.c 			ib_unregister_mad_agent(sa_dev->port[i].agent);
sa_dev           2397 drivers/infiniband/core/sa_query.c 	kfree(sa_dev);
sa_dev           2403 drivers/infiniband/core/sa_query.c 	struct ib_sa_device *sa_dev = client_data;
sa_dev           2406 drivers/infiniband/core/sa_query.c 	if (!sa_dev)
sa_dev           2409 drivers/infiniband/core/sa_query.c 	ib_unregister_event_handler(&sa_dev->event_handler);
sa_dev           2412 drivers/infiniband/core/sa_query.c 	for (i = 0; i <= sa_dev->end_port - sa_dev->start_port; ++i) {
sa_dev           2414 drivers/infiniband/core/sa_query.c 			cancel_delayed_work_sync(&sa_dev->port[i].ib_cpi_work);
sa_dev           2415 drivers/infiniband/core/sa_query.c 			ib_unregister_mad_agent(sa_dev->port[i].agent);
sa_dev           2416 drivers/infiniband/core/sa_query.c 			if (sa_dev->port[i].sm_ah)
sa_dev           2417 drivers/infiniband/core/sa_query.c 				kref_put(&sa_dev->port[i].sm_ah->ref, free_sm_ah);
sa_dev           2422 drivers/infiniband/core/sa_query.c 	kfree(sa_dev);