* any inline data. Also specify any padding which will be provided
         * from a preregistered zero buffer.
         */
-       rc = rpcrdma_buffer_create(&new_xprt->rx_buf, new_ep, &new_xprt->rx_ia,
-                               &new_xprt->rx_data);
+       rc = rpcrdma_buffer_create(new_xprt);
        if (rc)
                goto out3;
 
 
 }
 
 int
-rpcrdma_buffer_create(struct rpcrdma_buffer *buf, struct rpcrdma_ep *ep,
-       struct rpcrdma_ia *ia, struct rpcrdma_create_data_internal *cdata)
+rpcrdma_buffer_create(struct rpcrdma_xprt *r_xprt)
 {
+       struct rpcrdma_buffer *buf = &r_xprt->rx_buf;
+       struct rpcrdma_ia *ia = &r_xprt->rx_ia;
+       struct rpcrdma_create_data_internal *cdata = &r_xprt->rx_data;
        char *p;
        size_t len, rlen, wlen;
        int i, rc;
         * Register the zeroed pad buffer, if any.
         */
        if (cdata->padding) {
+               struct rpcrdma_ep *ep = &r_xprt->rx_ep;
                rc = rpcrdma_register_internal(ia, p, cdata->padding,
                                            &ep->rep_pad_mr, &ep->rep_pad);
                if (rc)
 
 /*
  * Buffer calls - xprtrdma/verbs.c
  */
-int rpcrdma_buffer_create(struct rpcrdma_buffer *, struct rpcrdma_ep *,
-                               struct rpcrdma_ia *,
-                               struct rpcrdma_create_data_internal *);
+int rpcrdma_buffer_create(struct rpcrdma_xprt *);
 void rpcrdma_buffer_destroy(struct rpcrdma_buffer *);
 
 struct rpcrdma_req *rpcrdma_buffer_get(struct rpcrdma_buffer *);