Hi Chuck,

On 01/13/2015 11:25 AM, Chuck Lever wrote:
> Clean up: Replace htonl and ntohl with the be32 equivalents.

After applying this patch I still see an ntohl() in both xprtrdma/transport.c 
and xprtrdma/verbs.c.  Should these be changed as well?

Thanks,
Anna
> 
> Signed-off-by: Chuck Lever <chuck.le...@oracle.com>
> ---
>  include/linux/sunrpc/rpc_rdma.h |    9 +++++++
>  include/linux/sunrpc/svc_rdma.h |    2 --
>  net/sunrpc/xprtrdma/rpc_rdma.c  |   48 
> +++++++++++++++++++++------------------
>  3 files changed, 35 insertions(+), 24 deletions(-)
> 
> diff --git a/include/linux/sunrpc/rpc_rdma.h b/include/linux/sunrpc/rpc_rdma.h
> index b78f16b..1578ed2 100644
> --- a/include/linux/sunrpc/rpc_rdma.h
> +++ b/include/linux/sunrpc/rpc_rdma.h
> @@ -42,6 +42,9 @@
>  
>  #include <linux/types.h>
>  
> +#define RPCRDMA_VERSION              1
> +#define rpcrdma_version              cpu_to_be32(RPCRDMA_VERSION)
> +
>  struct rpcrdma_segment {
>       __be32 rs_handle;       /* Registered memory handle */
>       __be32 rs_length;       /* Length of the chunk in bytes */
> @@ -115,4 +118,10 @@ enum rpcrdma_proc {
>       RDMA_ERROR = 4          /* An RPC RDMA encoding error */
>  };
>  
> +#define rdma_msg     cpu_to_be32(RDMA_MSG)
> +#define rdma_nomsg   cpu_to_be32(RDMA_NOMSG)
> +#define rdma_msgp    cpu_to_be32(RDMA_MSGP)
> +#define rdma_done    cpu_to_be32(RDMA_DONE)
> +#define rdma_error   cpu_to_be32(RDMA_ERROR)
> +
>  #endif                               /* _LINUX_SUNRPC_RPC_RDMA_H */
> diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
> index 975da75..ddfe88f 100644
> --- a/include/linux/sunrpc/svc_rdma.h
> +++ b/include/linux/sunrpc/svc_rdma.h
> @@ -63,8 +63,6 @@ extern atomic_t rdma_stat_rq_prod;
>  extern atomic_t rdma_stat_sq_poll;
>  extern atomic_t rdma_stat_sq_prod;
>  
> -#define RPCRDMA_VERSION 1
> -
>  /*
>   * Contexts are built when an RDMA request is created and are a
>   * record of the resources that can be recovered when the request
> diff --git a/net/sunrpc/xprtrdma/rpc_rdma.c b/net/sunrpc/xprtrdma/rpc_rdma.c
> index df01d12..a6fb30b 100644
> --- a/net/sunrpc/xprtrdma/rpc_rdma.c
> +++ b/net/sunrpc/xprtrdma/rpc_rdma.c
> @@ -209,9 +209,11 @@ rpcrdma_create_chunks(struct rpc_rqst *rqst, struct 
> xdr_buf *target,
>               if (cur_rchunk) {       /* read */
>                       cur_rchunk->rc_discrim = xdr_one;
>                       /* all read chunks have the same "position" */
> -                     cur_rchunk->rc_position = htonl(pos);
> -                     cur_rchunk->rc_target.rs_handle = htonl(seg->mr_rkey);
> -                     cur_rchunk->rc_target.rs_length = htonl(seg->mr_len);
> +                     cur_rchunk->rc_position = cpu_to_be32(pos);
> +                     cur_rchunk->rc_target.rs_handle =
> +                                             cpu_to_be32(seg->mr_rkey);
> +                     cur_rchunk->rc_target.rs_length =
> +                                             cpu_to_be32(seg->mr_len);
>                       xdr_encode_hyper(
>                                       (__be32 
> *)&cur_rchunk->rc_target.rs_offset,
>                                       seg->mr_base);
> @@ -222,8 +224,10 @@ rpcrdma_create_chunks(struct rpc_rqst *rqst, struct 
> xdr_buf *target,
>                       cur_rchunk++;
>                       r_xprt->rx_stats.read_chunk_count++;
>               } else {                /* write/reply */
> -                     cur_wchunk->wc_target.rs_handle = htonl(seg->mr_rkey);
> -                     cur_wchunk->wc_target.rs_length = htonl(seg->mr_len);
> +                     cur_wchunk->wc_target.rs_handle =
> +                                             cpu_to_be32(seg->mr_rkey);
> +                     cur_wchunk->wc_target.rs_length =
> +                                             cpu_to_be32(seg->mr_len);
>                       xdr_encode_hyper(
>                                       (__be32 
> *)&cur_wchunk->wc_target.rs_offset,
>                                       seg->mr_base);
> @@ -257,7 +261,7 @@ rpcrdma_create_chunks(struct rpc_rqst *rqst, struct 
> xdr_buf *target,
>               *iptr++ = xdr_zero;     /* encode a NULL reply chunk */
>       } else {
>               warray->wc_discrim = xdr_one;
> -             warray->wc_nchunks = htonl(nchunks);
> +             warray->wc_nchunks = cpu_to_be32(nchunks);
>               iptr = (__be32 *) cur_wchunk;
>               if (type == rpcrdma_writech) {
>                       *iptr++ = xdr_zero; /* finish the write chunk list */
> @@ -404,11 +408,11 @@ rpcrdma_marshal_req(struct rpc_rqst *rqst)
>  
>       /* build RDMA header in private area at front */
>       headerp = (struct rpcrdma_msg *) req->rl_base;
> -     /* don't htonl XID, it's already done in request */
> +     /* don't byte-swap XID, it's already done in request */
>       headerp->rm_xid = rqst->rq_xid;
> -     headerp->rm_vers = xdr_one;
> -     headerp->rm_credit = htonl(r_xprt->rx_buf.rb_max_requests);
> -     headerp->rm_type = htonl(RDMA_MSG);
> +     headerp->rm_vers = rpcrdma_version;
> +     headerp->rm_credit = cpu_to_be32(r_xprt->rx_buf.rb_max_requests);
> +     headerp->rm_type = rdma_msg;
>  
>       /*
>        * Chunks needed for results?
> @@ -482,11 +486,11 @@ rpcrdma_marshal_req(struct rpc_rqst *rqst)
>                                               RPCRDMA_INLINE_PAD_VALUE(rqst));
>  
>               if (padlen) {
> -                     headerp->rm_type = htonl(RDMA_MSGP);
> +                     headerp->rm_type = rdma_msgp;
>                       headerp->rm_body.rm_padded.rm_align =
> -                             htonl(RPCRDMA_INLINE_PAD_VALUE(rqst));
> +                             cpu_to_be32(RPCRDMA_INLINE_PAD_VALUE(rqst));
>                       headerp->rm_body.rm_padded.rm_thresh =
> -                             htonl(RPCRDMA_INLINE_PAD_THRESH);
> +                             cpu_to_be32(RPCRDMA_INLINE_PAD_THRESH);
>                       headerp->rm_body.rm_padded.rm_pempty[0] = xdr_zero;
>                       headerp->rm_body.rm_padded.rm_pempty[1] = xdr_zero;
>                       headerp->rm_body.rm_padded.rm_pempty[2] = xdr_zero;
> @@ -570,7 +574,7 @@ rpcrdma_count_chunks(struct rpcrdma_rep *rep, unsigned 
> int max, int wrchunk, __b
>       unsigned int i, total_len;
>       struct rpcrdma_write_chunk *cur_wchunk;
>  
> -     i = ntohl(**iptrp);     /* get array count */
> +     i = be32_to_cpu(**iptrp);
>       if (i > max)
>               return -1;
>       cur_wchunk = (struct rpcrdma_write_chunk *) (*iptrp + 1);
> @@ -582,11 +586,11 @@ rpcrdma_count_chunks(struct rpcrdma_rep *rep, unsigned 
> int max, int wrchunk, __b
>                       xdr_decode_hyper((__be32 *)&seg->rs_offset, &off);
>                       dprintk("RPC:       %s: chunk %d@0x%llx:0x%x\n",
>                               __func__,
> -                             ntohl(seg->rs_length),
> +                             be32_to_cpu(seg->rs_length),
>                               (unsigned long long)off,
> -                             ntohl(seg->rs_handle));
> +                             be32_to_cpu(seg->rs_handle));
>               }
> -             total_len += ntohl(seg->rs_length);
> +             total_len += be32_to_cpu(seg->rs_length);
>               ++cur_wchunk;
>       }
>       /* check and adjust for properly terminated write chunk */
> @@ -749,9 +753,9 @@ rpcrdma_reply_handler(struct rpcrdma_rep *rep)
>               goto repost;
>       }
>       headerp = (struct rpcrdma_msg *) rep->rr_base;
> -     if (headerp->rm_vers != xdr_one) {
> +     if (headerp->rm_vers != rpcrdma_version) {
>               dprintk("RPC:       %s: invalid version %d\n",
> -                     __func__, ntohl(headerp->rm_vers));
> +                     __func__, be32_to_cpu(headerp->rm_vers));
>               goto repost;
>       }
>  
> @@ -793,7 +797,7 @@ repost:
>       /* check for expected message types */
>       /* The order of some of these tests is important. */
>       switch (headerp->rm_type) {
> -     case htonl(RDMA_MSG):
> +     case rdma_msg:
>               /* never expect read chunks */
>               /* never expect reply chunks (two ways to check) */
>               /* never expect write chunks without having offered RDMA */
> @@ -832,7 +836,7 @@ repost:
>               rpcrdma_inline_fixup(rqst, (char *)iptr, rep->rr_len, rdmalen);
>               break;
>  
> -     case htonl(RDMA_NOMSG):
> +     case rdma_nomsg:
>               /* never expect read or write chunks, always reply chunks */
>               if (headerp->rm_body.rm_chunks[0] != xdr_zero ||
>                   headerp->rm_body.rm_chunks[1] != xdr_zero ||
> @@ -853,7 +857,7 @@ badheader:
>               dprintk("%s: invalid rpcrdma reply header (type %d):"
>                               " chunks[012] == %d %d %d"
>                               " expected chunks <= %d\n",
> -                             __func__, ntohl(headerp->rm_type),
> +                             __func__, be32_to_cpu(headerp->rm_type),
>                               headerp->rm_body.rm_chunks[0],
>                               headerp->rm_body.rm_chunks[1],
>                               headerp->rm_body.rm_chunks[2],
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to