From patchwork Fri Mar 7 10:33:25 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hariprasad Shenai X-Patchwork-Id: 327898 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 2CD8A2C032B for ; Fri, 7 Mar 2014 21:43:28 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752903AbaCGKnV (ORCPT ); Fri, 7 Mar 2014 05:43:21 -0500 Received: from stargate.chelsio.com ([67.207.112.58]:32154 "EHLO stargate.asicdesigners.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752048AbaCGKnS (ORCPT ); Fri, 7 Mar 2014 05:43:18 -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 s27AhGbI014818; Fri, 7 Mar 2014 02:43:16 -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:43:15 -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 28/32] iw_cxgb4: wc_wmb() needed after DB writes Date: Fri, 7 Mar 2014 16:03:25 +0530 Message-Id: <1394188409-9739-29-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:43:15.0730 (UTC) FILETIME=[0BA58720:01CF39F2] Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Steve Wise Need to do an sfence after both the WC and regular PIDX DB write. Otherwise the host might reorder things and cause work request corruption (seen with NFSRDMA). Signed-off-by: Steve Wise --- drivers/infiniband/hw/cxgb4/t4.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/cxgb4/t4.h b/drivers/infiniband/hw/cxgb4/t4.h index 67cd09ee..ace3154 100644 --- a/drivers/infiniband/hw/cxgb4/t4.h +++ b/drivers/infiniband/hw/cxgb4/t4.h @@ -470,12 +470,12 @@ static inline void t4_ring_sq_db(struct t4_wq *wq, u16 inc, u8 t5, PDBG("%s: WC wq->sq.pidx = %d\n", __func__, wq->sq.pidx); pio_copy(wq->sq.udb + 7, (void *)wqe); - wc_wmb(); } else { PDBG("%s: DB wq->sq.pidx = %d\n", __func__, wq->sq.pidx); writel(PIDX_T5(inc), wq->sq.udb); } + wc_wmb(); return; } writel(QID(wq->sq.qid) | PIDX(inc), wq->db); @@ -490,12 +490,12 @@ static inline void t4_ring_rq_db(struct t4_wq *wq, u16 inc, u8 t5, PDBG("%s: WC wq->rq.pidx = %d\n", __func__, wq->rq.pidx); pio_copy(wq->rq.udb + 7, (void *)wqe); - wc_wmb(); } else { PDBG("%s: DB wq->rq.pidx = %d\n", __func__, wq->rq.pidx); writel(PIDX_T5(inc), wq->rq.udb); } + wc_wmb(); return; } writel(QID(wq->rq.qid) | PIDX(inc), wq->db);