IB/hfi1: Cleanup of exp_rcv
The knowledge of the internal workings of the expect receive is too distributed. Fix by: - right size several rcd fields associated with expect receive - making an init entrance to init all the lists - consolidate all the allocations into an array anchored in the rcd Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> Reviewed-by: Kaike Wan <kaike.wan@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:

committed by
Jason Gunthorpe

parent
43a68c35c7
commit
c8314811f9
@@ -183,8 +183,30 @@ static inline u32 rcventry2tidinfo(u32 rcventry)
|
||||
EXP_TID_SET(CTRL, 1 << (rcventry - pair));
|
||||
}
|
||||
|
||||
/**
|
||||
* hfi1_tid_group_to_idx - convert an index to a group
|
||||
* @rcd - the receive context
|
||||
* @grp - the group pointer
|
||||
*/
|
||||
static inline u16
|
||||
hfi1_tid_group_to_idx(struct hfi1_ctxtdata *rcd, struct tid_group *grp)
|
||||
{
|
||||
return grp - &rcd->groups[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* hfi1_idx_to_tid_group - convert a group to an index
|
||||
* @rcd - the receive context
|
||||
* @idx - the index
|
||||
*/
|
||||
static inline struct tid_group *
|
||||
hfi1_idx_to_tid_group(struct hfi1_ctxtdata *rcd, u16 idx)
|
||||
{
|
||||
return &rcd->groups[idx];
|
||||
}
|
||||
|
||||
int hfi1_alloc_ctxt_rcv_groups(struct hfi1_ctxtdata *rcd);
|
||||
void hfi1_free_ctxt_rcv_groups(struct hfi1_ctxtdata *rcd);
|
||||
void hfi1_exp_tid_group_init(struct exp_tid_set *set);
|
||||
void hfi1_exp_tid_group_init(struct hfi1_ctxtdata *rcd);
|
||||
|
||||
#endif /* _HFI1_EXP_RCV_H */
|
||||
|
Reference in New Issue
Block a user