From patchwork Tue Feb 7 16:58:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 9560673 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id CFFB7602B1 for ; Tue, 7 Feb 2017 16:58:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C10F31FF27 for ; Tue, 7 Feb 2017 16:58:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B53F028428; Tue, 7 Feb 2017 16:58:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 549011FF27 for ; Tue, 7 Feb 2017 16:58:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754244AbdBGQ6n (ORCPT ); Tue, 7 Feb 2017 11:58:43 -0500 Received: from mail-it0-f67.google.com ([209.85.214.67]:35284 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753840AbdBGQ6m (ORCPT ); Tue, 7 Feb 2017 11:58:42 -0500 Received: by mail-it0-f67.google.com with SMTP id 203so12927867ith.2; Tue, 07 Feb 2017 08:58:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=1P1Ru2QETloFvNXf9KPj2vfre3P5Cegk1CR2K/d1cDE=; b=NdbgnkVh/mCUHgzDfYtf+KySF2Rb6kn6EshoXJQIadl0GErL3R0KmXJF1K0ii9UC3x 9DHAGkFX0NFRj0gFvD+K//MfjK2G7QiWlbGr19qaUMD/jsg65YP5xoMk6QyDC3WF0Ji0 hy/qqa8CZ2gjPIx87KIxTeDDkOTuV3tdN6ngF+YHc6WlQyfixDVmMIjdQ5xxqPej8y42 QKmH+VtdKWJnvXUIW2eeUeltfkffVKzTeRmrY9aNYh2Seg2LEj0MhJdF9Nd69DQD97SD +VFZC0euFfvaGytVAM7Q/7k7C5VSa+ri3T6bNwBWP6iVeKWls86TflTFS14agjWkUnv6 3smQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:from:to:cc:date:message-id :in-reply-to:references:user-agent:mime-version :content-transfer-encoding; bh=1P1Ru2QETloFvNXf9KPj2vfre3P5Cegk1CR2K/d1cDE=; b=LhuIJiSVeOwcYow5KFxqifbm8nUdpqcdaQd87p015/nZhziGkZaNa7O4zk4rgUNgEm kYCPJwC8dWXmu3cK6AMxD8MU+wME0V33z2Dj/WVdwN/Fvl1t0plbURCdnBDsn7aD7I5d E7IuKBbBcuOLvvnx7ejlTQ7ReG8G+ipj360owKzMRkNypseM7k3RY1b20HJB9LrMYfJG WeqCvFYaowLaLvyxgt+0ySFhCvXrxIaHbQvqG5QJZlicV4yp5iZgntNzIB0zSnB/dv3k E9yFENMZDOXBN0ZGYu6Gh26hpb2SKIxvNz0PBfjV5emfVanomYnpBhMh/02hrtAbFghv hg0Q== X-Gm-Message-State: AIkVDXK37B2K/9hBo6/ClpjiY/CWOWt4Qp9osVmCFEcm2rlC266Tkzfg76pZ3AFkssTaQg== X-Received: by 10.36.34.79 with SMTP id o76mr11857173ito.116.1486486721413; Tue, 07 Feb 2017 08:58:41 -0800 (PST) Received: from klimt.1015granger.net ([2604:8800:100:81fc:ec4:7aff:fe6c:6aa0]) by smtp.gmail.com with ESMTPSA id m196sm9808182iom.14.2017.02.07.08.58.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Feb 2017 08:58:40 -0800 (PST) Subject: [PATCH v3 4/7] svcrdma: Clean up backchannel send header encoding From: Chuck Lever To: bfields@fieldses.org Cc: linux-rdma@vger.kernel.org, linux-nfs@vger.kernel.org Date: Tue, 07 Feb 2017 11:58:40 -0500 Message-ID: <20170207165840.14422.60185.stgit@klimt.1015granger.net> In-Reply-To: <20170207165131.14422.47088.stgit@klimt.1015granger.net> References: <20170207165131.14422.47088.stgit@klimt.1015granger.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Replace C structure-based XDR decoding with pointer arithmetic. Pointer arithmetic is considered more portable. Signed-off-by: Chuck Lever Reviewed-by: Christoph Hellwig --- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c index 288e35c..b1bc7a7 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_backchannel.c +++ b/net/sunrpc/xprtrdma/svc_rdma_backchannel.c @@ -200,19 +200,20 @@ static int svc_rdma_bc_sendto(struct svcxprt_rdma *rdma, { struct rpc_xprt *xprt = rqst->rq_xprt; struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt); - struct rpcrdma_msg *headerp = (struct rpcrdma_msg *)rqst->rq_buffer; + __be32 *p; int rc; /* Space in the send buffer for an RPC/RDMA header is reserved * via xprt->tsh_size. */ - headerp->rm_xid = rqst->rq_xid; - headerp->rm_vers = rpcrdma_version; - headerp->rm_credit = cpu_to_be32(r_xprt->rx_buf.rb_bc_max_requests); - headerp->rm_type = rdma_msg; - headerp->rm_body.rm_chunks[0] = xdr_zero; - headerp->rm_body.rm_chunks[1] = xdr_zero; - headerp->rm_body.rm_chunks[2] = xdr_zero; + p = rqst->rq_buffer; + *p++ = rqst->rq_xid; + *p++ = rpcrdma_version; + *p++ = cpu_to_be32(r_xprt->rx_buf.rb_bc_max_requests); + *p++ = rdma_msg; + *p++ = xdr_zero; + *p++ = xdr_zero; + *p = xdr_zero; #ifdef SVCRDMA_BACKCHANNEL_DEBUG pr_info("%s: %*ph\n", __func__, 64, rqst->rq_buffer);