Lines Matching refs:req

543 	struct mcast_req *req = NULL;
550 req = list_first_entry(&group->pending_list, struct mcast_req, group_list);
551 list_del(&req->group_list);
552 list_del(&req->func_list);
553 --group->func[req->func].num_pend_reqs;
555 kfree(req);
585 struct mcast_req *req)
589 if (req->clean)
590 leave_mask = group->func[req->func].join_state;
592 status = check_leave(group, req->func, leave_mask);
594 leave_group(group, req->func, leave_mask);
596 if (!req->clean)
597 send_reply_to_slave(req->func, group, &req->sa_mad, status);
598 --group->func[req->func].num_pend_reqs;
599 list_del(&req->group_list);
600 list_del(&req->func_list);
601 kfree(req);
606 struct mcast_req *req)
611 struct ib_sa_mcmember_data *sa_data = (struct ib_sa_mcmember_data *)req->sa_mad.data;
615 status = cmp_rec(&group->rec, sa_data, req->sa_mad.sa_hdr.comp_mask);
617 join_group(group, req->func, join_mask);
619 --group->func[req->func].num_pend_reqs;
620 send_reply_to_slave(req->func, group, &req->sa_mad, status);
621 list_del(&req->group_list);
622 list_del(&req->func_list);
623 kfree(req);
628 if (send_join_to_wire(group, &req->sa_mad)) {
629 --group->func[req->func].num_pend_reqs;
630 list_del(&req->group_list);
631 list_del(&req->func_list);
632 kfree(req);
645 struct mcast_req *req = NULL;
675 req = list_first_entry(&group->pending_list,
678 if (req) {
679 send_reply_to_slave(req->func, group, &req->sa_mad, status);
680 --group->func[req->func].num_pend_reqs;
681 list_del(&req->group_list);
682 list_del(&req->func_list);
683 kfree(req);
711 req = list_first_entry(&group->pending_list, struct mcast_req,
713 sa_data = (struct ib_sa_mcmember_data *)req->sa_mad.data;
719 if (req->sa_mad.mad_hdr.method == IB_SA_METHOD_DELETE)
720 rc += handle_leave_req(group, req_join_state, req);
722 rc += handle_join_req(group, req_join_state, req);
752 struct mcast_req *req;
767 req = list_first_entry(&group->pending_list,
769 --group->func[req->func].num_pend_reqs;
770 list_del(&req->group_list);
771 list_del(&req->func_list);
772 kfree(req);
873 static void queue_req(struct mcast_req *req)
875 struct mcast_group *group = req->group;
879 list_add_tail(&req->group_list, &group->pending_list);
880 list_add_tail(&req->func_list, &group->func[req->func].pending);
942 struct mcast_req *req;
952 req = kzalloc(sizeof *req, GFP_KERNEL);
953 if (!req)
956 req->func = slave;
957 req->sa_mad = *sa_mad;
963 kfree(req);
972 kfree(req);
976 req->group = group;
977 queue_req(req);
998 struct mcast_req *req = NULL;
1013 req = list_first_entry(&group->pending_list, struct mcast_req, group_list);
1016 req->sa_mad.mad_hdr.tid));
1066 struct mcast_req *req, *tmp
1068 list_for_each_entry_safe(req, tmp, &group->pending_list, group_list) {
1069 list_del(&req->group_list);
1070 kfree(req);
1159 static void build_leave_mad(struct mcast_req *req)
1161 struct ib_sa_mad *mad = &req->sa_mad;
1169 struct mcast_req *req, *tmp, *group_first = NULL;
1176 list_for_each_entry_safe(req, tmp, &group->func[vf].pending, func_list) {
1178 if (group_first == req &&
1187 list_del(&req->group_list);
1188 list_del(&req->func_list);
1189 kfree(req);
1202 struct mcast_req *req;
1208 req = kzalloc(sizeof *req, GFP_KERNEL);
1209 if (!req) {
1217 kfree(req);
1222 req->clean = 1;
1223 req->func = slave;
1224 req->group = group;
1226 build_leave_mad(req);
1227 queue_req(req);