out:
        for (pos = 0; nchunks--;)
                pos += rpcrdma_deregister_external(
-                               &req->rl_segments[pos], r_xprt, NULL);
+                               &req->rl_segments[pos], r_xprt);
        return 0;
 }
 
 
        for (i = 0; req->rl_nchunks;) {
                --req->rl_nchunks;
                i += rpcrdma_deregister_external(
-                       &req->rl_segments[i], r_xprt, NULL);
+                       &req->rl_segments[i], r_xprt);
        }
 
        if (req->rl_iov.length == 0) {  /* see allocate above */
 
 
 int
 rpcrdma_deregister_external(struct rpcrdma_mr_seg *seg,
-               struct rpcrdma_xprt *r_xprt, void *r)
+               struct rpcrdma_xprt *r_xprt)
 {
        struct rpcrdma_ia *ia = &r_xprt->rx_ia;
        int nsegs = seg->mr_nsegs, rc;
        default:
                break;
        }
-       if (r) {
-               struct rpcrdma_rep *rep = r;
-               void (*func)(struct rpcrdma_rep *) = rep->rr_func;
-               rep->rr_func = NULL;
-               func(rep);      /* dereg done, callback now */
-       }
        return nsegs;
 }
 
 
 int rpcrdma_register_external(struct rpcrdma_mr_seg *,
                                int, int, struct rpcrdma_xprt *);
 int rpcrdma_deregister_external(struct rpcrdma_mr_seg *,
-                               struct rpcrdma_xprt *, void *);
+                               struct rpcrdma_xprt *);
 
 /*
  * RPC/RDMA connection management calls - xprtrdma/rpc_rdma.c