• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /barrelfish-2018-10-04/lib/devif/backends/net/mlx4/drivers/infiniband/core/

Lines Matching defs:member

187 static void deref_member(struct inform_member *member)
189 if (atomic_dec_and_test(&member->refcount))
190 complete(&member->comp);
193 static void queue_reg(struct inform_member *member)
195 struct inform_group *group = member->group;
199 list_add(&member->list, &group->pending_list);
208 static int send_reg(struct inform_group *group, struct inform_member *member)
219 inform.trap.generic.trap_num = cpu_to_be16(member->info.trap_number);
224 group->last_join = member;
261 static void join_group(struct inform_group *group, struct inform_member *member)
263 member->state = INFORM_MEMBER;
265 list_move(&member->list, &group->active_list);
268 static int fail_join(struct inform_group *group, struct inform_member *member,
272 list_del_init(&member->list);
274 return member->info.callback(status, &member->info, NULL);
279 struct inform_member *member;
284 member = list_entry(group->active_list.next,
286 atomic_inc(&member->refcount);
287 list_del_init(&member->list);
289 member->state = INFORM_ERROR;
292 ret = member->info.callback(-ENETRESET, &member->info, NULL);
293 deref_member(member);
295 ib_sa_unregister_inform_info(&member->info);
312 struct inform_member *member;
322 member = list_entry(list.next, struct inform_member, list);
323 atomic_inc(&member->refcount);
324 list_move(&member->list, &group->active_list);
327 ret = member->info.callback(0, &member->info,
329 deref_member(member);
331 ib_sa_unregister_inform_info(&member->info);
340 struct inform_member *member;
368 member = list_entry(group->pending_list.next,
370 info = &member->info;
371 atomic_inc(&member->refcount);
374 join_group(group, member);
379 status = send_reg(group, member);
381 deref_member(member);
384 ret = fail_join(group, member, status);
387 deref_member(member);
389 ib_sa_unregister_inform_info(&member->info);
410 struct inform_member *member;
414 member = list_entry(group->pending_list.next,
416 if (group->last_join == member) {
417 atomic_inc(&member->refcount);
418 list_del_init(&member->list);
420 ret = member->info.callback(status, &member->info, NULL);
421 deref_member(member);
423 ib_sa_unregister_inform_info(&member->info);
547 struct inform_member *member;
555 member = kzalloc(sizeof *member, gfp_mask);
556 if (!member)
560 member->client = client;
561 member->info.trap_number = trap_number;
562 member->info.callback = callback;
563 member->info.context = context;
564 init_completion(&member->comp);
565 atomic_set(&member->refcount, 1);
566 member->state = INFORM_REGISTERING;
568 member->group = acquire_group(&dev->port[port_num - dev->start_port],
570 if (!member->group) {
581 info = &member->info;
582 queue_reg(member);
586 ib_sa_client_put(member->client);
587 kfree(member);
594 struct inform_member *member;
597 member = container_of(info, struct inform_member, info);
598 group = member->group;
601 if (member->state == INFORM_MEMBER)
604 list_del_init(&member->list);
616 deref_member(member);
617 wait_for_completion(&member->comp);
618 ib_sa_client_put(member->client);
619 kfree(member);