Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp2777253pxb; Mon, 19 Apr 2021 13:44:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyXFwWuw5he6qhbac0JV5YZG5OxbD5yNG8awno7DEbpicfueyAgH0R1osJpLhKaw9AYbrgq X-Received: by 2002:a17:902:7b8e:b029:ec:982d:7a7e with SMTP id w14-20020a1709027b8eb02900ec982d7a7emr11444454pll.55.1618865086925; Mon, 19 Apr 2021 13:44:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618865086; cv=none; d=google.com; s=arc-20160816; b=CNsocGeXKAdxe6sEQNd81YbFLlgxEaeBQiDCrRgcQD+3jm7o1AxanwWOSSsNiLYda2 TCDujA+bzDrLy1UqsNS7878sAE2mXBloX6mifrWKB0CKlDu7978X7jbs895B6k5rHlGa SKaL1rQa2XSsXgRyd+4ZPENZ9xQxOUmJxIemcDjlamZ4FzafCd2Wqa6c2oCB8+Q9jyT+ 6/pgco+V8jWMCdzXT9+QncSdTTgG6cBLLf7FTTykbclE2jii4upUY05zKkMjh3kmKFmT +XqnU7CBvHdwi3pNADGfuyOSlaDFOMbqroYyuQ9EiAZHChg5babkbc2Gc0eh7f9vBKIn aabA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject; bh=5xLZ+EL+zBU1e8bkRwOTSVw25nQJ03AShcvJAcTfDGg=; b=08g+Qnm52TkkkwhQHiWRAolvkLLW3wMES/5oEAfYtq1BnM1bJIbeoxqSkWIPkE/JON lYScLt4655iXDMRKctS8CE8KmVUiIFvSvEEFsbqDkN3Bxx9MP9EgEPkUxT42JSwy7BEM YDFlqGAOpOdJe9QjeAaPjZxUCl9VtcY4yy5oWaPKJrOG5EucrNmO/hi/ZY7u2hequpFg AjFrppjG+SXqNFAUQQn5Fo36fqzk12DuG4PSaxIldHZn/5X0+j2gqEie7v2BaZ4ciCH5 yc1RVT1GWqM8eT5ROnF0nlq8HvcLOeMoPI4qEGrhoUyi4WivM6LHQVh2D5vgroNDaYGU kEYA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e8si404772plh.389.2021.04.19.13.44.33; Mon, 19 Apr 2021 13:44:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240555AbhDSSDj (ORCPT + 99 others); Mon, 19 Apr 2021 14:03:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:41224 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240553AbhDSSDi (ORCPT ); Mon, 19 Apr 2021 14:03:38 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 68CDD61107; Mon, 19 Apr 2021 18:03:07 +0000 (UTC) Subject: [PATCH v3 14/26] xprtrdma: Clarify use of barrier in frwr_wc_localinv_done() From: Chuck Lever To: trondmy@hammerspace.com Cc: linux-nfs@vger.kernel.org, linux-rdma@vger.kernel.org Date: Mon, 19 Apr 2021 14:03:06 -0400 Message-ID: <161885538659.38598.10556029680495875033.stgit@manet.1015granger.net> In-Reply-To: <161885481568.38598.16682844600209775665.stgit@manet.1015granger.net> References: <161885481568.38598.16682844600209775665.stgit@manet.1015granger.net> User-Agent: StGit/0.23-29-ga622f1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Clean up: The comment and the placement of the memory barrier is confusing. Humans want to read the function statements from head to tail. Signed-off-by: Chuck Lever --- net/sunrpc/xprtrdma/frwr_ops.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/net/sunrpc/xprtrdma/frwr_ops.c b/net/sunrpc/xprtrdma/frwr_ops.c index bfc057fdb75f..af85cec0ce31 100644 --- a/net/sunrpc/xprtrdma/frwr_ops.c +++ b/net/sunrpc/xprtrdma/frwr_ops.c @@ -592,14 +592,16 @@ static void frwr_wc_localinv_done(struct ib_cq *cq, struct ib_wc *wc) struct rpcrdma_frwr *frwr = container_of(cqe, struct rpcrdma_frwr, fr_cqe); struct rpcrdma_mr *mr = container_of(frwr, struct rpcrdma_mr, frwr); - struct rpcrdma_rep *rep = mr->mr_req->rl_reply; + struct rpcrdma_rep *rep; /* WARNING: Only wr_cqe and status are reliable at this point */ trace_xprtrdma_wc_li_done(wc, &frwr->fr_cid); - frwr_mr_done(wc, mr); - /* Ensure @rep is generated before frwr_mr_done */ + /* Ensure that @rep is generated before the MR is released */ + rep = mr->mr_req->rl_reply; smp_rmb(); + + frwr_mr_done(wc, mr); rpcrdma_complete_rqst(rep); rpcrdma_flush_disconnect(cq->cq_context, wc);