IB/hfi1: Rename struct ahg_ib_header to struct hfi1_ahg_info

struct ahg_ib_header has no header specific information.
Rename it to struct hfi1_ahg_info

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Reviewed-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>
Signed-off-by: Don Hiatt <don.hiatt@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
Dasaratharaman Chandramouli 2016-07-25 13:40:16 -07:00 committed by Doug Ledford
parent bd24ef5eca
commit a9b6b3bc29
6 changed files with 34 additions and 33 deletions

View File

@ -806,8 +806,9 @@ void *qp_priv_alloc(struct rvt_dev_info *rdi, struct rvt_qp *qp,
priv->owner = qp; priv->owner = qp;
priv->s_hdr = kzalloc_node(sizeof(*priv->s_hdr), gfp, rdi->dparms.node); priv->s_ahg = kzalloc_node(sizeof(*priv->s_ahg), gfp,
if (!priv->s_hdr) { rdi->dparms.node);
if (!priv->s_ahg) {
kfree(priv); kfree(priv);
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
@ -820,7 +821,7 @@ void qp_priv_free(struct rvt_dev_info *rdi, struct rvt_qp *qp)
{ {
struct hfi1_qp_priv *priv = qp->priv; struct hfi1_qp_priv *priv = qp->priv;
kfree(priv->s_hdr); kfree(priv->s_ahg);
kfree(priv); kfree(priv);
} }

View File

@ -63,7 +63,7 @@ static inline void clear_ahg(struct rvt_qp *qp)
{ {
struct hfi1_qp_priv *priv = qp->priv; struct hfi1_qp_priv *priv = qp->priv;
priv->s_hdr->ahgcount = 0; priv->s_ahg->ahgcount = 0;
qp->s_flags &= ~(RVT_S_AHG_VALID | RVT_S_AHG_CLEAR); qp->s_flags &= ~(RVT_S_AHG_VALID | RVT_S_AHG_CLEAR);
if (priv->s_sde && qp->s_ahgidx >= 0) if (priv->s_sde && qp->s_ahgidx >= 0)
sdma_ahg_free(priv->s_sde, qp->s_ahgidx); sdma_ahg_free(priv->s_sde, qp->s_ahgidx);

View File

@ -711,7 +711,7 @@ u32 hfi1_make_grh(struct hfi1_ibport *ibp, struct ib_grh *hdr,
#define BTH2_OFFSET (offsetof(struct hfi1_pio_header, hdr.u.oth.bth[2]) / 4) #define BTH2_OFFSET (offsetof(struct hfi1_pio_header, hdr.u.oth.bth[2]) / 4)
/** /**
* build_ahg - create ahg in s_hdr * build_ahg - create ahg in s_ahg
* @qp: a pointer to QP * @qp: a pointer to QP
* @npsn: the next PSN for the request/response * @npsn: the next PSN for the request/response
* *
@ -733,18 +733,18 @@ static inline void build_ahg(struct rvt_qp *qp, u32 npsn)
qp->s_ahgidx = sdma_ahg_alloc(priv->s_sde); qp->s_ahgidx = sdma_ahg_alloc(priv->s_sde);
if (qp->s_ahgidx >= 0) { if (qp->s_ahgidx >= 0) {
qp->s_ahgpsn = npsn; qp->s_ahgpsn = npsn;
priv->s_hdr->tx_flags |= SDMA_TXREQ_F_AHG_COPY; priv->s_ahg->tx_flags |= SDMA_TXREQ_F_AHG_COPY;
/* save to protect a change in another thread */ /* save to protect a change in another thread */
priv->s_hdr->ahgidx = qp->s_ahgidx; priv->s_ahg->ahgidx = qp->s_ahgidx;
qp->s_flags |= RVT_S_AHG_VALID; qp->s_flags |= RVT_S_AHG_VALID;
} }
} else { } else {
/* subsequent middle after valid */ /* subsequent middle after valid */
if (qp->s_ahgidx >= 0) { if (qp->s_ahgidx >= 0) {
priv->s_hdr->tx_flags |= SDMA_TXREQ_F_USE_AHG; priv->s_ahg->tx_flags |= SDMA_TXREQ_F_USE_AHG;
priv->s_hdr->ahgidx = qp->s_ahgidx; priv->s_ahg->ahgidx = qp->s_ahgidx;
priv->s_hdr->ahgcount++; priv->s_ahg->ahgcount++;
priv->s_hdr->ahgdesc[0] = priv->s_ahg->ahgdesc[0] =
sdma_build_ahg_descriptor( sdma_build_ahg_descriptor(
(__force u16)cpu_to_be16((u16)npsn), (__force u16)cpu_to_be16((u16)npsn),
BTH2_OFFSET, BTH2_OFFSET,
@ -752,8 +752,8 @@ static inline void build_ahg(struct rvt_qp *qp, u32 npsn)
16); 16);
if ((npsn & 0xffff0000) != if ((npsn & 0xffff0000) !=
(qp->s_ahgpsn & 0xffff0000)) { (qp->s_ahgpsn & 0xffff0000)) {
priv->s_hdr->ahgcount++; priv->s_ahg->ahgcount++;
priv->s_hdr->ahgdesc[1] = priv->s_ahg->ahgdesc[1] =
sdma_build_ahg_descriptor( sdma_build_ahg_descriptor(
(__force u16)cpu_to_be16( (__force u16)cpu_to_be16(
(u16)(npsn >> 16)), (u16)(npsn >> 16)),
@ -790,7 +790,7 @@ void hfi1_make_ruc_header(struct rvt_qp *qp, struct hfi1_other_headers *ohdr,
} }
lrh0 |= (priv->s_sc & 0xf) << 12 | (qp->remote_ah_attr.sl & 0xf) << 4; lrh0 |= (priv->s_sc & 0xf) << 12 | (qp->remote_ah_attr.sl & 0xf) << 4;
/* /*
* reset s_hdr/AHG fields * reset s_ahg/AHG fields
* *
* This insures that the ahgentry/ahgcount * This insures that the ahgentry/ahgcount
* are at a non-AHG default to protect * are at a non-AHG default to protect
@ -800,9 +800,9 @@ void hfi1_make_ruc_header(struct rvt_qp *qp, struct hfi1_other_headers *ohdr,
* build_ahg() will modify as appropriate * build_ahg() will modify as appropriate
* to use the AHG feature. * to use the AHG feature.
*/ */
priv->s_hdr->tx_flags = 0; priv->s_ahg->tx_flags = 0;
priv->s_hdr->ahgcount = 0; priv->s_ahg->ahgcount = 0;
priv->s_hdr->ahgidx = 0; priv->s_ahg->ahgidx = 0;
if (qp->s_mig_state == IB_MIG_MIGRATED) if (qp->s_mig_state == IB_MIG_MIGRATED)
bth0 |= IB_BTH_MIG_REQ; bth0 |= IB_BTH_MIG_REQ;
else else
@ -913,7 +913,7 @@ void hfi1_do_send(struct rvt_qp *qp)
*/ */
if (hfi1_verbs_send(qp, &ps)) if (hfi1_verbs_send(qp, &ps))
return; return;
/* Record that s_hdr is empty. */ /* Record that s_ahg is empty. */
qp->s_hdrwords = 0; qp->s_hdrwords = 0;
/* allow other tasks to run */ /* allow other tasks to run */
if (unlikely(time_after(jiffies, timeout))) { if (unlikely(time_after(jiffies, timeout))) {

View File

@ -430,9 +430,9 @@ int hfi1_make_ud_req(struct rvt_qp *qp, struct hfi1_pkt_state *ps)
qp->qkey : wqe->ud_wr.remote_qkey); qp->qkey : wqe->ud_wr.remote_qkey);
ohdr->u.ud.deth[1] = cpu_to_be32(qp->ibqp.qp_num); ohdr->u.ud.deth[1] = cpu_to_be32(qp->ibqp.qp_num);
/* disarm any ahg */ /* disarm any ahg */
priv->s_hdr->ahgcount = 0; priv->s_ahg->ahgcount = 0;
priv->s_hdr->ahgidx = 0; priv->s_ahg->ahgidx = 0;
priv->s_hdr->tx_flags = 0; priv->s_ahg->tx_flags = 0;
/* pbc */ /* pbc */
ps->s_txreq->hdr_dwords = qp->s_hdrwords + 2; ps->s_txreq->hdr_dwords = qp->s_hdrwords + 2;

View File

@ -816,19 +816,19 @@ static int build_verbs_tx_desc(
struct rvt_sge_state *ss, struct rvt_sge_state *ss,
u32 length, u32 length,
struct verbs_txreq *tx, struct verbs_txreq *tx,
struct ahg_ib_header *ahdr, struct hfi1_ahg_info *ahg_info,
u64 pbc) u64 pbc)
{ {
int ret = 0; int ret = 0;
struct hfi1_pio_header *phdr = &tx->phdr; struct hfi1_pio_header *phdr = &tx->phdr;
u16 hdrbytes = tx->hdr_dwords << 2; u16 hdrbytes = tx->hdr_dwords << 2;
if (!ahdr->ahgcount) { if (!ahg_info->ahgcount) {
ret = sdma_txinit_ahg( ret = sdma_txinit_ahg(
&tx->txreq, &tx->txreq,
ahdr->tx_flags, ahg_info->tx_flags,
hdrbytes + length, hdrbytes + length,
ahdr->ahgidx, ahg_info->ahgidx,
0, 0,
NULL, NULL,
0, 0,
@ -846,11 +846,11 @@ static int build_verbs_tx_desc(
} else { } else {
ret = sdma_txinit_ahg( ret = sdma_txinit_ahg(
&tx->txreq, &tx->txreq,
ahdr->tx_flags, ahg_info->tx_flags,
length, length,
ahdr->ahgidx, ahg_info->ahgidx,
ahdr->ahgcount, ahg_info->ahgcount,
ahdr->ahgdesc, ahg_info->ahgdesc,
hdrbytes, hdrbytes,
verbs_sdma_complete); verbs_sdma_complete);
if (ret) if (ret)
@ -868,7 +868,7 @@ int hfi1_verbs_send_dma(struct rvt_qp *qp, struct hfi1_pkt_state *ps,
u64 pbc) u64 pbc)
{ {
struct hfi1_qp_priv *priv = qp->priv; struct hfi1_qp_priv *priv = qp->priv;
struct ahg_ib_header *ahdr = priv->s_hdr; struct hfi1_ahg_info *ahg_info = priv->s_ahg;
u32 hdrwords = qp->s_hdrwords; u32 hdrwords = qp->s_hdrwords;
struct rvt_sge_state *ss = qp->s_cur_sge; struct rvt_sge_state *ss = qp->s_cur_sge;
u32 len = qp->s_cur_size; u32 len = qp->s_cur_size;
@ -896,7 +896,7 @@ int hfi1_verbs_send_dma(struct rvt_qp *qp, struct hfi1_pkt_state *ps,
plen); plen);
} }
tx->wqe = qp->s_wqe; tx->wqe = qp->s_wqe;
ret = build_verbs_tx_desc(tx->sde, ss, len, tx, ahdr, pbc); ret = build_verbs_tx_desc(tx->sde, ss, len, tx, ahg_info, pbc);
if (unlikely(ret)) if (unlikely(ret))
goto bail_build; goto bail_build;
} }

View File

@ -178,7 +178,7 @@ struct hfi1_ib_header {
} u; } u;
} __packed; } __packed;
struct ahg_ib_header { struct hfi1_ahg_info {
u32 ahgdesc[2]; u32 ahgdesc[2];
u16 tx_flags; u16 tx_flags;
u8 ahgcount; u8 ahgcount;
@ -195,7 +195,7 @@ struct hfi1_pio_header {
* pair is made common * pair is made common
*/ */
struct hfi1_qp_priv { struct hfi1_qp_priv {
struct ahg_ib_header *s_hdr; /* next header to send */ struct hfi1_ahg_info *s_ahg; /* ahg info for next header */
struct sdma_engine *s_sde; /* current sde */ struct sdma_engine *s_sde; /* current sde */
struct send_context *s_sendcontext; /* current sendcontext */ struct send_context *s_sendcontext; /* current sendcontext */
u8 s_sc; /* SC[0..4] for next packet */ u8 s_sc; /* SC[0..4] for next packet */