|
@@ -200,19 +200,20 @@ rpcrdma_bc_send_request(struct svcxprt_rdma *rdma, struct rpc_rqst *rqst)
|
|
|
{
|
|
|
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);
|