From: Chuck Lever Date: Fri, 20 Oct 2017 14:47:39 +0000 (-0400) Subject: xprtrdma: Clean up SGE accounting in rpcrdma_prepare_msg_sges() X-Git-Tag: v5.15~9785^2~56 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad99f0530710af72b5bbecda9e770c736e92b328;p=platform%2Fkernel%2Flinux-starfive.git xprtrdma: Clean up SGE accounting in rpcrdma_prepare_msg_sges() Clean up. rpcrdma_prepare_hdr_sge() sets num_sge to one, then rpcrdma_prepare_msg_sges() sets num_sge again to the count of SGEs it added, plus one for the header SGE just mapped in rpcrdma_prepare_hdr_sge(). This is confusing, and nails in an assumption about when these functions are called. Instead, maintain a running count that both functions can update with just the number of SGEs they have added to the SGE array. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker --- diff --git a/net/sunrpc/xprtrdma/rpc_rdma.c b/net/sunrpc/xprtrdma/rpc_rdma.c index b8818c09..3c92558 100644 --- a/net/sunrpc/xprtrdma/rpc_rdma.c +++ b/net/sunrpc/xprtrdma/rpc_rdma.c @@ -637,7 +637,7 @@ map_tail: } out: - req->rl_send_wr.num_sge = sge_no + 1; + req->rl_send_wr.num_sge += sge_no; return true; out_mapping_overflow: