diff options
author | Mike Marciniszyn <mike.marciniszyn@intel.com> | 2017-02-08 16:25:56 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-02-19 17:18:32 +0300 |
commit | 4fcf1de5a79bfe8ee4c638bd3902d20cd59376de (patch) | |
tree | 3ea6a6d4ba70207a1d89eef4ad97f1a09cba8028 | |
parent | 8d8a47338089d96093fa5fb8a686d9faefce04a1 (diff) | |
download | linux-4fcf1de5a79bfe8ee4c638bd3902d20cd59376de.tar.xz |
IB/hfi1: Correct defered count after processing qp_wait_list
The qp_wait_list processing leaves the defered ack count
at its prior value.
This can result in a premature send of an ack.
Fixed by unconditionally reseting the defered ack count
in hfi1_send_rc_ack().
Fixes: Commit 7c091e5c0685 ("staging/rdma/hfi1: add ACK coalescing logic")
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
-rw-r--r-- | drivers/infiniband/hw/hfi1/rc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hfi1/rc.c b/drivers/infiniband/hw/hfi1/rc.c index 809b26eb6d3c..1dd999e9349c 100644 --- a/drivers/infiniband/hw/hfi1/rc.c +++ b/drivers/infiniband/hw/hfi1/rc.c @@ -853,6 +853,10 @@ void hfi1_send_rc_ack(struct hfi1_ctxtdata *rcd, struct rvt_qp *qp, struct ib_header hdr; struct ib_other_headers *ohdr; unsigned long flags; + struct hfi1_qp_priv *priv = qp->priv; + + /* clear the defer count */ + priv->r_adefered = 0; /* Don't send ACK or NAK if a RDMA read or atomic is pending. */ if (qp->s_flags & RVT_S_RESP_PENDING) |