Lines Matching defs:sa_dev
414 struct ib_sa_device *sa_dev =
415 container_of(handler, typeof(*sa_dev), event_handler);
417 &sa_dev->port[event->element.port_num - sa_dev->start_port];
425 schedule_work(&sa_dev->port[event->element.port_num -
426 sa_dev->start_port].update_task);
474 struct ib_sa_device *sa_dev;
479 sa_dev = ib_get_client_data(device, &sa_client);
480 if (!sa_dev)
483 port = &sa_dev->port[port_num - sa_dev->start_port];
672 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
678 if (!sa_dev)
681 port = &sa_dev->port[port_num - sa_dev->start_port];
789 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
795 if (!sa_dev)
798 port = &sa_dev->port[port_num - sa_dev->start_port];
886 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
892 if (!sa_dev)
895 port = &sa_dev->port[port_num - sa_dev->start_port];
997 struct ib_sa_device *sa_dev;
1010 sa_dev = kmalloc(sizeof *sa_dev +
1013 if (!sa_dev)
1016 sa_dev->start_port = s;
1017 sa_dev->end_port = e;
1020 sa_dev->port[i].sm_ah = NULL;
1021 sa_dev->port[i].port_num = i + s;
1022 spin_lock_init(&sa_dev->port[i].ah_lock);
1024 sa_dev->port[i].agent =
1027 recv_handler, sa_dev);
1028 if (IS_ERR(sa_dev->port[i].agent))
1031 INIT_WORK(&sa_dev->port[i].update_task, update_sm_ah);
1034 ib_set_client_data(device, &sa_client, sa_dev);
1043 INIT_IB_EVENT_HANDLER(&sa_dev->event_handler, device, ib_sa_event);
1044 if (ib_register_event_handler(&sa_dev->event_handler))
1048 update_sm_ah(&sa_dev->port[i].update_task);
1054 ib_unregister_mad_agent(sa_dev->port[i].agent);
1056 kfree(sa_dev);
1063 struct ib_sa_device *sa_dev = ib_get_client_data(device, &sa_client);
1066 if (!sa_dev)
1069 ib_unregister_event_handler(&sa_dev->event_handler);
1073 for (i = 0; i <= sa_dev->end_port - sa_dev->start_port; ++i) {
1074 ib_unregister_mad_agent(sa_dev->port[i].agent);
1075 if (sa_dev->port[i].sm_ah)
1076 kref_put(&sa_dev->port[i].sm_ah->ref, free_sm_ah);
1079 kfree(sa_dev);