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

Lines Matching defs:mc

90 	struct ucma_multicast	*mc;
168 struct ucma_multicast *mc;
171 mc = kzalloc(sizeof(*mc), GFP_KERNEL);
172 if (!mc)
181 ret = idr_get_new(&multicast_idr, mc, &mc->id);
188 mc->ctx = ctx;
189 list_add_tail(&mc->list, &ctx->mc_list);
190 return mc;
193 kfree(mc);
233 uevent->mc = (struct ucma_multicast *)
235 uevent->resp.uid = uevent->mc->uid;
236 uevent->resp.id = uevent->mc->id;
345 if (uevent->mc)
346 uevent->mc->events_reported++;
401 struct ucma_multicast *mc, *tmp;
404 list_for_each_entry_safe(mc, tmp, &ctx->mc_list, list) {
405 list_del(&mc->list);
406 idr_remove(&multicast_idr, mc->id);
407 kfree(mc);
430 static void ucma_cleanup_mc_events(struct ucma_multicast *mc)
434 list_for_each_entry_safe(uevent, tmp, &mc->ctx->file->event_list, list) {
435 if (uevent->mc != mc)
984 struct ucma_multicast *mc;
998 mc = ucma_alloc_multicast(ctx);
999 if (!mc) {
1004 mc->uid = cmd.uid;
1005 memcpy(&mc->addr, &cmd.addr, sizeof cmd.addr);
1006 ret = rdma_join_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr, mc);
1010 resp.id = mc->id;
1022 rdma_leave_multicast(ctx->cm_id, (struct sockaddr *) &mc->addr);
1023 ucma_cleanup_mc_events(mc);
1026 idr_remove(&multicast_idr, mc->id);
1028 list_del(&mc->list);
1029 kfree(mc);
1042 struct ucma_multicast *mc;
1052 mc = idr_find(&multicast_idr, cmd.id);
1053 if (!mc)
1054 mc = ERR_PTR(-ENOENT);
1055 else if (mc->ctx->file != file)
1056 mc = ERR_PTR(-EINVAL);
1058 idr_remove(&multicast_idr, mc->id);
1059 atomic_inc(&mc->ctx->ref);
1063 if (IS_ERR(mc)) {
1064 ret = PTR_ERR(mc);
1068 rdma_leave_multicast(mc->ctx->cm_id, (struct sockaddr *) &mc->addr);
1069 mutex_lock(&mc->ctx->file->mut);
1070 ucma_cleanup_mc_events(mc);
1071 list_del(&mc->list);
1072 mutex_unlock(&mc->ctx->file->mut);
1074 ucma_put_ctx(mc->ctx);
1075 resp.events_reported = mc->events_reported;
1076 kfree(mc);