Patch "iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
iw_cxgb4-do-not-send-rx_data_ack-cpls-after-close-abort.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Wed Aug 9 10:32:06 PDT 2017
From: Steve Wise <[email protected]>
Date: Thu, 22 Dec 2016 07:40:37 -0800
Subject: iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort
From: Steve Wise <[email protected]>
[ Upstream commit 3bcf96e0183f5c863657cb6ae9adad307a0f6071 ]
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.
--- drivers/infiniband/hw/cxgb4/cm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/infiniband/hw/cxgb4/cm.c +4 -3
@@ -1804,20 +1804,21 @@ static int rx_data(struct c4iw_dev *dev,skb_trim (skb, dlen);mutex_lock (&ep->com.mutex); -/* update RX credits */ -update_rx_credits (ep, dlen); -switch (ep->com.state) {case MPA_REQ_SENT : +update_rx_credits (ep, dlen); ep->rcv_seq += dlen; disconnect =process_mpa_reply (ep, skb);break ;case MPA_REQ_WAIT : +update_rx_credits (ep, dlen); ep->rcv_seq += dlen; disconnect =process_mpa_request (ep, skb);break ;case FPDU_MODE : {struct c4iw_qp_attributes attrs; + +update_rx_credits (ep, dlen);BUG_ON (!ep->com.qp);if (status) pr_err("%s Unexpected streaming data." \
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/iw_cxgb4-do-not-send-rx_data_ack-cpls-after-close-abort.patch