mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
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:
parent
bd24ef5eca
commit
a9b6b3bc29
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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))) {
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user