summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/hfi1/opfn.c
diff options
context:
space:
mode:
authorKaike Wan <kaike.wan@intel.com>2019-01-23 21:50:14 -0800
committerDoug Ledford <dledford@redhat.com>2019-02-05 18:07:43 -0500
commit9e93e967f7b452e6c9e4a33d0b42ff64fa7293c4 (patch)
tree8c76aa42fed96f25a4c434b57f9d748fc51386d5 /drivers/infiniband/hw/hfi1/opfn.c
parent0f75e325aa11552599a18d7558970be16fc15c1a (diff)
downloadlinux-stable-9e93e967f7b452e6c9e4a33d0b42ff64fa7293c4.tar.gz
linux-stable-9e93e967f7b452e6c9e4a33d0b42ff64fa7293c4.tar.bz2
linux-stable-9e93e967f7b452e6c9e4a33d0b42ff64fa7293c4.zip
IB/hfi1: Add a function to receive TID RDMA ACK packet
This patch adds a function to receive TID RDMA ACK packet, which could be an acknowledge to either a TID RDMA WRITE DATA packet or an TID RDMA RESYNC packet. For an ACK to TID RDMA WRITE DATA packet, the request segments are completed appropriately. For an ACK to a TID RDMA RESYNC packet, any pending segment flow information is updated accordingly. Signed-off-by: Mitko Haralanov <mitko.haralanov@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@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>
Diffstat (limited to 'drivers/infiniband/hw/hfi1/opfn.c')
-rw-r--r--drivers/infiniband/hw/hfi1/opfn.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hfi1/opfn.c b/drivers/infiniband/hw/hfi1/opfn.c
index 2ca070690b2f..82e1889ca969 100644
--- a/drivers/infiniband/hw/hfi1/opfn.c
+++ b/drivers/infiniband/hw/hfi1/opfn.c
@@ -245,6 +245,9 @@ void opfn_qp_init(struct rvt_qp *qp, struct ib_qp_attr *attr, int attr_mask)
struct hfi1_qp_priv *priv = qp->priv;
unsigned long flags;
+ if (attr_mask & IB_QP_RETRY_CNT)
+ priv->s_retry = attr->retry_cnt;
+
spin_lock_irqsave(&priv->opfn.lock, flags);
if (ibqp->qp_type == IB_QPT_RC && HFI1_CAP_IS_KSET(TID_RDMA)) {
struct tid_rdma_params *local = &priv->tid_rdma.local;