summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorDasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com>2016-07-25 16:40:16 -0400
committerDoug Ledford <dledford@redhat.com>2016-08-02 16:00:58 -0400
commita9b6b3bc295d2360480d32049c32661e809c7c5c (patch)
treeebd2849df31d28226d54540463884b67dc66ca59 /drivers/infiniband
parentbd24ef5eca75b00c9d98533f5644750de2f29a65 (diff)
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>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/hw/hfi1/qp.c7
-rw-r--r--drivers/infiniband/hw/hfi1/qp.h2
-rw-r--r--drivers/infiniband/hw/hfi1/ruc.c28
-rw-r--r--drivers/infiniband/hw/hfi1/ud.c6
-rw-r--r--drivers/infiniband/hw/hfi1/verbs.c20
-rw-r--r--drivers/infiniband/hw/hfi1/verbs.h4
6 files changed, 34 insertions, 33 deletions
diff --git a/drivers/infiniband/hw/hfi1/qp.c b/drivers/infiniband/hw/hfi1/qp.c
index ad8ad33aaa73..a5aa3517e7d5 100644
--- a/drivers/infiniband/hw/hfi1/qp.c
+++ b/drivers/infiniband/hw/hfi1/qp.c
@@ -806,8 +806,9 @@ void *qp_priv_alloc(struct rvt_dev_info *rdi, struct rvt_qp *qp,
806 806
807 priv->owner = qp; 807 priv->owner = qp;
808 808
809 priv->s_hdr = kzalloc_node(sizeof(*priv->s_hdr), gfp, rdi->dparms.node); 809 priv->s_ahg = kzalloc_node(sizeof(*priv->s_ahg), gfp,
810 if (!priv->s_hdr) { 810 rdi->dparms.node);
811 if (!priv->s_ahg) {
811 kfree(priv); 812 kfree(priv);
812 return ERR_PTR(-ENOMEM); 813 return ERR_PTR(-ENOMEM);
813 } 814 }
@@ -820,7 +821,7 @@ void qp_priv_free(struct rvt_dev_info *rdi, struct rvt_qp *qp)
820{ 821{
821 struct hfi1_qp_priv *priv = qp->priv; 822 struct hfi1_qp_priv *priv = qp->priv;
822 823
823 kfree(priv->s_hdr); 824 kfree(priv->s_ahg);
824 kfree(priv); 825 kfree(priv);
825} 826}
826 827
diff --git a/drivers/infiniband/hw/hfi1/qp.h b/drivers/infiniband/hw/hfi1/qp.h
index ddf82988b02f..587d84d65bb8 100644
--- a/drivers/infiniband/hw/hfi1/qp.h
+++ b/drivers/infiniband/hw/hfi1/qp.h
@@ -63,7 +63,7 @@ static inline void clear_ahg(struct rvt_qp *qp)
63{ 63{
64 struct hfi1_qp_priv *priv = qp->priv; 64 struct hfi1_qp_priv *priv = qp->priv;
65 65
66 priv->s_hdr->ahgcount = 0; 66 priv->s_ahg->ahgcount = 0;
67 qp->s_flags &= ~(RVT_S_AHG_VALID | RVT_S_AHG_CLEAR); 67 qp->s_flags &= ~(RVT_S_AHG_VALID | RVT_S_AHG_CLEAR);
68 if (priv->s_sde && qp->s_ahgidx >= 0) 68 if (priv->s_sde && qp->s_ahgidx >= 0)
69 sdma_ahg_free(priv->s_sde, qp->s_ahgidx); 69 sdma_ahg_free(priv->s_sde, qp->s_ahgidx);
diff --git a/drivers/infiniband/hw/hfi1/ruc.c b/drivers/infiniband/hw/hfi1/ruc.c
index c7c2f48ad8a8..ea7977dc646e 100644
--- a/drivers/infiniband/hw/hfi1/ruc.c
+++ b/drivers/infiniband/hw/hfi1/ruc.c
@@ -711,7 +711,7 @@ u32 hfi1_make_grh(struct hfi1_ibport *ibp, struct ib_grh *hdr,
711#define BTH2_OFFSET (offsetof(struct hfi1_pio_header, hdr.u.oth.bth[2]) / 4) 711#define BTH2_OFFSET (offsetof(struct hfi1_pio_header, hdr.u.oth.bth[2]) / 4)
712 712
713/** 713/**
714 * build_ahg - create ahg in s_hdr 714 * build_ahg - create ahg in s_ahg
715 * @qp: a pointer to QP 715 * @qp: a pointer to QP
716 * @npsn: the next PSN for the request/response 716 * @npsn: the next PSN for the request/response
717 * 717 *
@@ -733,18 +733,18 @@ static inline void build_ahg(struct rvt_qp *qp, u32 npsn)
733 qp->s_ahgidx = sdma_ahg_alloc(priv->s_sde); 733 qp->s_ahgidx = sdma_ahg_alloc(priv->s_sde);
734 if (qp->s_ahgidx >= 0) { 734 if (qp->s_ahgidx >= 0) {
735 qp->s_ahgpsn = npsn; 735 qp->s_ahgpsn = npsn;
736 priv->s_hdr->tx_flags |= SDMA_TXREQ_F_AHG_COPY; 736 priv->s_ahg->tx_flags |= SDMA_TXREQ_F_AHG_COPY;
737 /* save to protect a change in another thread */ 737 /* save to protect a change in another thread */
738 priv->s_hdr->ahgidx = qp->s_ahgidx; 738 priv->s_ahg->ahgidx = qp->s_ahgidx;
739 qp->s_flags |= RVT_S_AHG_VALID; 739 qp->s_flags |= RVT_S_AHG_VALID;
740 } 740 }
741 } else { 741 } else {
742 /* subsequent middle after valid */ 742 /* subsequent middle after valid */
743 if (qp->s_ahgidx >= 0) { 743 if (qp->s_ahgidx >= 0) {
744 priv->s_hdr->tx_flags |= SDMA_TXREQ_F_USE_AHG; 744 priv->s_ahg->tx_flags |= SDMA_TXREQ_F_USE_AHG;
745 priv->s_hdr->ahgidx = qp->s_ahgidx; 745 priv->s_ahg->ahgidx = qp->s_ahgidx;
746 priv->s_hdr->ahgcount++; 746 priv->s_ahg->ahgcount++;
747 priv->s_hdr->ahgdesc[0] = 747 priv->s_ahg->ahgdesc[0] =
748 sdma_build_ahg_descriptor( 748 sdma_build_ahg_descriptor(
749 (__force u16)cpu_to_be16((u16)npsn), 749 (__force u16)cpu_to_be16((u16)npsn),
750 BTH2_OFFSET, 750 BTH2_OFFSET,
@@ -752,8 +752,8 @@ static inline void build_ahg(struct rvt_qp *qp, u32 npsn)
752 16); 752 16);
753 if ((npsn & 0xffff0000) != 753 if ((npsn & 0xffff0000) !=
754 (qp->s_ahgpsn & 0xffff0000)) { 754 (qp->s_ahgpsn & 0xffff0000)) {
755 priv->s_hdr->ahgcount++; 755 priv->s_ahg->ahgcount++;
756 priv->s_hdr->ahgdesc[1] = 756 priv->s_ahg->ahgdesc[1] =
757 sdma_build_ahg_descriptor( 757 sdma_build_ahg_descriptor(
758 (__force u16)cpu_to_be16( 758 (__force u16)cpu_to_be16(
759 (u16)(npsn >> 16)), 759 (u16)(npsn >> 16)),
@@ -790,7 +790,7 @@ void hfi1_make_ruc_header(struct rvt_qp *qp, struct hfi1_other_headers *ohdr,
790 } 790 }
791 lrh0 |= (priv->s_sc & 0xf) << 12 | (qp->remote_ah_attr.sl & 0xf) << 4; 791 lrh0 |= (priv->s_sc & 0xf) << 12 | (qp->remote_ah_attr.sl & 0xf) << 4;
792 /* 792 /*
793 * reset s_hdr/AHG fields 793 * reset s_ahg/AHG fields
794 * 794 *
795 * This insures that the ahgentry/ahgcount 795 * This insures that the ahgentry/ahgcount
796 * are at a non-AHG default to protect 796 * 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,
800 * build_ahg() will modify as appropriate 800 * build_ahg() will modify as appropriate
801 * to use the AHG feature. 801 * to use the AHG feature.
802 */ 802 */
803 priv->s_hdr->tx_flags = 0; 803 priv->s_ahg->tx_flags = 0;
804 priv->s_hdr->ahgcount = 0; 804 priv->s_ahg->ahgcount = 0;
805 priv->s_hdr->ahgidx = 0; 805 priv->s_ahg->ahgidx = 0;
806 if (qp->s_mig_state == IB_MIG_MIGRATED) 806 if (qp->s_mig_state == IB_MIG_MIGRATED)
807 bth0 |= IB_BTH_MIG_REQ; 807 bth0 |= IB_BTH_MIG_REQ;
808 else 808 else
@@ -913,7 +913,7 @@ void hfi1_do_send(struct rvt_qp *qp)
913 */ 913 */
914 if (hfi1_verbs_send(qp, &ps)) 914 if (hfi1_verbs_send(qp, &ps))
915 return; 915 return;
916 /* Record that s_hdr is empty. */ 916 /* Record that s_ahg is empty. */
917 qp->s_hdrwords = 0; 917 qp->s_hdrwords = 0;
918 /* allow other tasks to run */ 918 /* allow other tasks to run */
919 if (unlikely(time_after(jiffies, timeout))) { 919 if (unlikely(time_after(jiffies, timeout))) {
diff --git a/drivers/infiniband/hw/hfi1/ud.c b/drivers/infiniband/hw/hfi1/ud.c
index d4afb1dfda27..08a9c1219b29 100644
--- a/drivers/infiniband/hw/hfi1/ud.c
+++ b/drivers/infiniband/hw/hfi1/ud.c
@@ -430,9 +430,9 @@ int hfi1_make_ud_req(struct rvt_qp *qp, struct hfi1_pkt_state *ps)
430 qp->qkey : wqe->ud_wr.remote_qkey); 430 qp->qkey : wqe->ud_wr.remote_qkey);
431 ohdr->u.ud.deth[1] = cpu_to_be32(qp->ibqp.qp_num); 431 ohdr->u.ud.deth[1] = cpu_to_be32(qp->ibqp.qp_num);
432 /* disarm any ahg */ 432 /* disarm any ahg */
433 priv->s_hdr->ahgcount = 0; 433 priv->s_ahg->ahgcount = 0;
434 priv->s_hdr->ahgidx = 0; 434 priv->s_ahg->ahgidx = 0;
435 priv->s_hdr->tx_flags = 0; 435 priv->s_ahg->tx_flags = 0;
436 /* pbc */ 436 /* pbc */
437 ps->s_txreq->hdr_dwords = qp->s_hdrwords + 2; 437 ps->s_txreq->hdr_dwords = qp->s_hdrwords + 2;
438 438
diff --git a/drivers/infiniband/hw/hfi1/verbs.c b/drivers/infiniband/hw/hfi1/verbs.c
index 95785651fb77..2b3fa400c593 100644
--- a/drivers/infiniband/hw/hfi1/verbs.c
+++ b/drivers/infiniband/hw/hfi1/verbs.c
@@ -816,19 +816,19 @@ static int build_verbs_tx_desc(
816 struct rvt_sge_state *ss, 816 struct rvt_sge_state *ss,
817 u32 length, 817 u32 length,
818 struct verbs_txreq *tx, 818 struct verbs_txreq *tx,
819 struct ahg_ib_header *ahdr, 819 struct hfi1_ahg_info *ahg_info,
820 u64 pbc) 820 u64 pbc)
821{ 821{
822 int ret = 0; 822 int ret = 0;
823 struct hfi1_pio_header *phdr = &tx->phdr; 823 struct hfi1_pio_header *phdr = &tx->phdr;
824 u16 hdrbytes = tx->hdr_dwords << 2; 824 u16 hdrbytes = tx->hdr_dwords << 2;
825 825
826 if (!ahdr->ahgcount) { 826 if (!ahg_info->ahgcount) {
827 ret = sdma_txinit_ahg( 827 ret = sdma_txinit_ahg(
828 &tx->txreq, 828 &tx->txreq,
829 ahdr->tx_flags, 829 ahg_info->tx_flags,
830 hdrbytes + length, 830 hdrbytes + length,
831 ahdr->ahgidx, 831 ahg_info->ahgidx,
832 0, 832 0,
833 NULL, 833 NULL,
834 0, 834 0,
@@ -846,11 +846,11 @@ static int build_verbs_tx_desc(
846 } else { 846 } else {
847 ret = sdma_txinit_ahg( 847 ret = sdma_txinit_ahg(
848 &tx->txreq, 848 &tx->txreq,
849 ahdr->tx_flags, 849 ahg_info->tx_flags,
850 length, 850 length,
851 ahdr->ahgidx, 851 ahg_info->ahgidx,
852 ahdr->ahgcount, 852 ahg_info->ahgcount,
853 ahdr->ahgdesc, 853 ahg_info->ahgdesc,
854 hdrbytes, 854 hdrbytes,
855 verbs_sdma_complete); 855 verbs_sdma_complete);
856 if (ret) 856 if (ret)
@@ -868,7 +868,7 @@ int hfi1_verbs_send_dma(struct rvt_qp *qp, struct hfi1_pkt_state *ps,
868 u64 pbc) 868 u64 pbc)
869{ 869{
870 struct hfi1_qp_priv *priv = qp->priv; 870 struct hfi1_qp_priv *priv = qp->priv;
871 struct ahg_ib_header *ahdr = priv->s_hdr; 871 struct hfi1_ahg_info *ahg_info = priv->s_ahg;
872 u32 hdrwords = qp->s_hdrwords; 872 u32 hdrwords = qp->s_hdrwords;
873 struct rvt_sge_state *ss = qp->s_cur_sge; 873 struct rvt_sge_state *ss = qp->s_cur_sge;
874 u32 len = qp->s_cur_size; 874 u32 len = qp->s_cur_size;
@@ -896,7 +896,7 @@ int hfi1_verbs_send_dma(struct rvt_qp *qp, struct hfi1_pkt_state *ps,
896 plen); 896 plen);
897 } 897 }
898 tx->wqe = qp->s_wqe; 898 tx->wqe = qp->s_wqe;
899 ret = build_verbs_tx_desc(tx->sde, ss, len, tx, ahdr, pbc); 899 ret = build_verbs_tx_desc(tx->sde, ss, len, tx, ahg_info, pbc);
900 if (unlikely(ret)) 900 if (unlikely(ret))
901 goto bail_build; 901 goto bail_build;
902 } 902 }
diff --git a/drivers/infiniband/hw/hfi1/verbs.h b/drivers/infiniband/hw/hfi1/verbs.h
index 4bd1cd42e981..d44550fdd39f 100644
--- a/drivers/infiniband/hw/hfi1/verbs.h
+++ b/drivers/infiniband/hw/hfi1/verbs.h
@@ -178,7 +178,7 @@ struct hfi1_ib_header {
178 } u; 178 } u;
179} __packed; 179} __packed;
180 180
181struct ahg_ib_header { 181struct hfi1_ahg_info {
182 u32 ahgdesc[2]; 182 u32 ahgdesc[2];
183 u16 tx_flags; 183 u16 tx_flags;
184 u8 ahgcount; 184 u8 ahgcount;
@@ -195,7 +195,7 @@ struct hfi1_pio_header {
195 * pair is made common 195 * pair is made common
196 */ 196 */
197struct hfi1_qp_priv { 197struct hfi1_qp_priv {
198 struct ahg_ib_header *s_hdr; /* next header to send */ 198 struct hfi1_ahg_info *s_ahg; /* ahg info for next header */
199 struct sdma_engine *s_sde; /* current sde */ 199 struct sdma_engine *s_sde; /* current sde */
200 struct send_context *s_sendcontext; /* current sendcontext */ 200 struct send_context *s_sendcontext; /* current sendcontext */
201 u8 s_sc; /* SC[0..4] for next packet */ 201 u8 s_sc; /* SC[0..4] for next packet */