IB/hfi1: Set hdr_type when tx req is allocated
Setting the protocol type should be part of initializing the tx request.
For UC and RC, the current protocol type is part of the qp priv structure.
For ud requests, it needs to be adjusted dynamically, based on the AV
posted with the WQE. This patch will simplify the initialization of the
tx request.
Fixes: 5b6cabb0db
("IB/hfi1: Add 16B RC/UC support")
Reviewed-by: Don Hiatt <don.hiatt@intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
f8195f3b14
commit
a8979cc55c
|
@ -276,7 +276,6 @@ int hfi1_make_rc_req(struct rvt_qp *qp, struct hfi1_pkt_state *ps)
|
|||
if (IS_ERR(ps->s_txreq))
|
||||
goto bail_no_tx;
|
||||
|
||||
ps->s_txreq->phdr.hdr.hdr_type = priv->hdr_type;
|
||||
if (priv->hdr_type == HFI1_PKT_TYPE_9B) {
|
||||
/* header size in 32-bit words LRH+BTH = (8+12)/4. */
|
||||
hwords = 5;
|
||||
|
|
|
@ -93,7 +93,6 @@ int hfi1_make_uc_req(struct rvt_qp *qp, struct hfi1_pkt_state *ps)
|
|||
goto done_free_tx;
|
||||
}
|
||||
|
||||
ps->s_txreq->phdr.hdr.hdr_type = priv->hdr_type;
|
||||
if (priv->hdr_type == HFI1_PKT_TYPE_9B) {
|
||||
/* header size in 32-bit words LRH+BTH = (8+12)/4. */
|
||||
hwords = 5;
|
||||
|
|
|
@ -92,6 +92,8 @@ static inline struct verbs_txreq *get_txreq(struct hfi1_ibdev *dev,
|
|||
tx->psc = priv->s_sendcontext;
|
||||
/* so that we can test if the sdma decriptors are there */
|
||||
tx->txreq.num_desc = 0;
|
||||
/* Set the header type */
|
||||
tx->phdr.hdr.hdr_type = priv->hdr_type;
|
||||
return tx;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue