iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort
authorSteve Wise <swise@opengridcomputing.com>
Thu, 22 Dec 2016 15:40:37 +0000 (07:40 -0800)
committerDoug Ledford <dledford@redhat.com>
Tue, 10 Jan 2017 19:01:38 +0000 (14:01 -0500)
commit3bcf96e0183f5c863657cb6ae9adad307a0f6071
tree46483f5effe2858b0f0f20cf55a137cd87387205
parentc12a67fec8d99bb554e8d4e99120d418f1a39c87
iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort

Function rx_data(), which handles ingress CPL_RX_DATA messages, was
always sending an RX_DATA_ACK with the goal of updating the credits.
However, if the RDMA connection is moved out of FPDU mode abruptly,
then it is possible for iw_cxgb4 to process queued RX_DATA CPLs after HW
has aborted the connection.  These CPLs should not trigger RX_DATA_ACKS.
If they do, HW can see a READ after DELETE of the DB_LE hash entry for
the tid and post a LE_DB HashTblMemCrcError.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/cxgb4/cm.c