From patchwork Fri Mar 7 10:33:16 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hariprasad Shenai X-Patchwork-Id: 327890 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 1E9DB2C032B for ; Fri, 7 Mar 2014 21:42:53 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752791AbaCGKmr (ORCPT ); Fri, 7 Mar 2014 05:42:47 -0500 Received: from stargate.chelsio.com ([67.207.112.58]:14618 "EHLO stargate.asicdesigners.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752275AbaCGKmp (ORCPT ); Fri, 7 Mar 2014 05:42:45 -0500 Received: from maui.asicdesigners.com (maui.asicdesigners.com [10.192.180.15]) by stargate.asicdesigners.com (8.14.4/8.14.4) with SMTP id s27AgguG014790; Fri, 7 Mar 2014 02:42:42 -0800 Received: from strawberry.asicdesigners.com ([10.193.185.96]) by maui.asicdesigners.com with Microsoft SMTPSVC(6.0.3790.4675); Fri, 7 Mar 2014 02:42:41 -0800 From: Hariprasad Shenai To: netdev@vger.kernel.org, linux-rdma@vger.kernel.org Cc: davem@davemloft.net, roland@purestorage.com, santosh@chelsio.com, dm@chelsio.com, kumaras@chelsio.com, swise@opengridcomputing.com, leedom@chelsio.com, nirranjan@chelsio.com, hariprasad@chelsio.com Subject: [PATCHv4 net-next 19/32] iw_cxgb4: ignore read reponse type 1 CQEs Date: Fri, 7 Mar 2014 16:03:16 +0530 Message-Id: <1394188409-9739-20-git-send-email-hariprasad@chelsio.com> X-Mailer: git-send-email 1.8.4 In-Reply-To: <1394188409-9739-1-git-send-email-hariprasad@chelsio.com> References: <1394188409-9739-1-git-send-email-hariprasad@chelsio.com> X-OriginalArrivalTime: 07 Mar 2014 10:42:42.0246 (UTC) FILETIME=[F7B04660:01CF39F1] Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Steve Wise These are generated by HW in some error cases and need to be silently discarded. Signed-off-by: Steve Wise --- drivers/infiniband/hw/cxgb4/cq.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/hw/cxgb4/cq.c b/drivers/infiniband/hw/cxgb4/cq.c index 59f7601..55f7157 100644 --- a/drivers/infiniband/hw/cxgb4/cq.c +++ b/drivers/infiniband/hw/cxgb4/cq.c @@ -365,8 +365,14 @@ void c4iw_flush_hw_cq(struct c4iw_cq *chp) if (CQE_OPCODE(hw_cqe) == FW_RI_READ_RESP) { - /* - * drop peer2peer RTR reads. + /* If we have reached here because of async + * event or other error, and have egress error + * then drop + */ + if (CQE_TYPE(hw_cqe) == 1) + goto next_cqe; + + /* drop peer2peer RTR reads. */ if (CQE_WRID_STAG(hw_cqe) == 1) goto next_cqe; @@ -511,8 +517,18 @@ static int poll_cq(struct t4_wq *wq, struct t4_cq *cq, struct t4_cqe *cqe, */ if (RQ_TYPE(hw_cqe) && (CQE_OPCODE(hw_cqe) == FW_RI_READ_RESP)) { - /* - * If this is an unsolicited read response, then the read + /* If we have reached here because of async + * event or other error, and have egress error + * then drop + */ + if (CQE_TYPE(hw_cqe) == 1) { + if (CQE_STATUS(hw_cqe)) + t4_set_wq_in_error(wq); + ret = -EAGAIN; + goto skip_cqe; + } + + /* If this is an unsolicited read response, then the read * was generated by the kernel driver as part of peer-2-peer * connection setup. So ignore the completion. */