Lines Matching refs:slave
224 static int send_mad_to_slave(int slave, struct mlx4_ib_demux_ctx *ctx, in send_mad_to_slave() argument
245 return mlx4_ib_send_to_slave(dev, slave, ctx->port, IB_QPT_GSI, &wc, NULL, mad); in send_mad_to_slave()
314 static int send_reply_to_slave(int slave, struct mcast_group *group, in send_reply_to_slave() argument
341 sa_data->scope_join_state |= (group->func[slave].join_state & 0x0f); in send_reply_to_slave()
344 ret = send_mad_to_slave(slave, group->demux, (struct ib_mad *)&mad); in send_reply_to_slave()
491 static int join_group(struct mcast_group *group, int slave, u8 join_mask) in join_group() argument
497 join_state = join_mask & (~group->func[slave].join_state); in join_group()
499 group->func[slave].join_state |= join_state; in join_group()
500 if (group->func[slave].state != MCAST_MEMBER && join_state) { in join_group()
501 group->func[slave].state = MCAST_MEMBER; in join_group()
507 static int leave_group(struct mcast_group *group, int slave, u8 leave_state) in leave_group() argument
512 group->func[slave].join_state &= ~leave_state; in leave_group()
513 if (!group->func[slave].join_state) { in leave_group()
514 group->func[slave].state = MCAST_NOT_MEMBER; in leave_group()
520 static int check_leave(struct mcast_group *group, int slave, u8 leave_mask) in check_leave() argument
522 if (group->func[slave].state != MCAST_MEMBER) in check_leave()
526 if (~group->func[slave].join_state & leave_mask) in check_leave()
882 int mlx4_ib_mcg_demux_handler(struct ib_device *ibdev, int port, int slave, in mlx4_ib_mcg_demux_handler() argument
899 *(u8 *)(&tid) = (u8)slave; /* in group we kept the modified TID */ in mlx4_ib_mcg_demux_handler()
932 int slave, struct ib_sa_mad *sa_mad) in mlx4_ib_mcg_multiplex_handler() argument
952 req->func = slave; in mlx4_ib_mcg_multiplex_handler()
963 if (group->func[slave].num_pend_reqs > MAX_PEND_REQS_PER_FUNC) { in mlx4_ib_mcg_multiplex_handler()
966 port, slave, MAX_PEND_REQS_PER_FUNC); in mlx4_ib_mcg_multiplex_handler()
971 ++group->func[slave].num_pend_reqs; in mlx4_ib_mcg_multiplex_handler()
984 port, slave, sa_mad->mad_hdr.method); in mlx4_ib_mcg_multiplex_handler()
1195 static int push_deleteing_req(struct mcast_group *group, int slave) in push_deleteing_req() argument
1200 if (!group->func[slave].join_state) in push_deleteing_req()
1209 if (!list_empty(&group->func[slave].pending)) { in push_deleteing_req()
1210 pend_req = list_entry(group->func[slave].pending.prev, struct mcast_req, group_list); in push_deleteing_req()
1218 req->func = slave; in push_deleteing_req()
1220 ++group->func[slave].num_pend_reqs; in push_deleteing_req()
1226 void clean_vf_mcast(struct mlx4_ib_demux_ctx *ctx, int slave) in clean_vf_mcast() argument
1237 clear_pending_reqs(group, slave); in clean_vf_mcast()
1238 push_deleteing_req(group, slave); in clean_vf_mcast()