Lines Matching refs:slave
228 static int send_mad_to_slave(int slave, struct mlx4_ib_demux_ctx *ctx, in send_mad_to_slave() argument
249 return mlx4_ib_send_to_slave(dev, slave, ctx->port, IB_QPT_GSI, &wc, NULL, mad); in send_mad_to_slave()
318 static int send_reply_to_slave(int slave, struct mcast_group *group, in send_reply_to_slave() argument
345 sa_data->scope_join_state |= (group->func[slave].join_state & 0x0f); in send_reply_to_slave()
348 ret = send_mad_to_slave(slave, group->demux, (struct ib_mad *)&mad); in send_reply_to_slave()
495 static int join_group(struct mcast_group *group, int slave, u8 join_mask) in join_group() argument
501 join_state = join_mask & (~group->func[slave].join_state); in join_group()
503 group->func[slave].join_state |= join_state; in join_group()
504 if (group->func[slave].state != MCAST_MEMBER && join_state) { in join_group()
505 group->func[slave].state = MCAST_MEMBER; in join_group()
511 static int leave_group(struct mcast_group *group, int slave, u8 leave_state) in leave_group() argument
516 group->func[slave].join_state &= ~leave_state; in leave_group()
517 if (!group->func[slave].join_state) { in leave_group()
518 group->func[slave].state = MCAST_NOT_MEMBER; in leave_group()
524 static int check_leave(struct mcast_group *group, int slave, u8 leave_mask) in check_leave() argument
526 if (group->func[slave].state != MCAST_MEMBER) in check_leave()
530 if (~group->func[slave].join_state & leave_mask) in check_leave()
886 int mlx4_ib_mcg_demux_handler(struct ib_device *ibdev, int port, int slave, in mlx4_ib_mcg_demux_handler() argument
903 *(u8 *)(&tid) = (u8)slave; /* in group we kept the modified TID */ in mlx4_ib_mcg_demux_handler()
936 int slave, struct ib_sa_mad *sa_mad) in mlx4_ib_mcg_multiplex_handler() argument
956 req->func = slave; in mlx4_ib_mcg_multiplex_handler()
967 if (group->func[slave].num_pend_reqs > MAX_PEND_REQS_PER_FUNC) { in mlx4_ib_mcg_multiplex_handler()
970 port, slave, MAX_PEND_REQS_PER_FUNC); in mlx4_ib_mcg_multiplex_handler()
975 ++group->func[slave].num_pend_reqs; in mlx4_ib_mcg_multiplex_handler()
988 port, slave, sa_mad->mad_hdr.method); in mlx4_ib_mcg_multiplex_handler()
1199 static int push_deleteing_req(struct mcast_group *group, int slave) in push_deleteing_req() argument
1204 if (!group->func[slave].join_state) in push_deleteing_req()
1213 if (!list_empty(&group->func[slave].pending)) { in push_deleteing_req()
1214 pend_req = list_entry(group->func[slave].pending.prev, struct mcast_req, group_list); in push_deleteing_req()
1222 req->func = slave; in push_deleteing_req()
1224 ++group->func[slave].num_pend_reqs; in push_deleteing_req()
1230 void clean_vf_mcast(struct mlx4_ib_demux_ctx *ctx, int slave) in clean_vf_mcast() argument
1241 clear_pending_reqs(group, slave); in clean_vf_mcast()
1242 push_deleteing_req(group, slave); in clean_vf_mcast()