svcrdma: Use max_sge_rd for destination read depths
[linux-2.6-block.git] / net / sunrpc / xprtrdma / svc_rdma_transport.c
index 6b36279e428850ee6fc96e49e2997a2a5679dc3c..fdc850ffc26c42a3e027a303283dc382dc53e3b5 100644 (file)
@@ -872,6 +872,8 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
         * capabilities of this particular device */
        newxprt->sc_max_sge = min((size_t)devattr.max_sge,
                                  (size_t)RPCSVC_MAXPAGES);
+       newxprt->sc_max_sge_rd = min_t(size_t, devattr.max_sge_rd,
+                                      RPCSVC_MAXPAGES);
        newxprt->sc_max_requests = min((size_t)devattr.max_qp_wr,
                                   (size_t)svcrdma_max_requests);
        newxprt->sc_sq_depth = RPCRDMA_SQ_DEPTH_MULT * newxprt->sc_max_requests;
@@ -1046,6 +1048,7 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
                "    remote_ip       : %pI4\n"
                "    remote_port     : %d\n"
                "    max_sge         : %d\n"
+               "    max_sge_rd      : %d\n"
                "    sq_depth        : %d\n"
                "    max_requests    : %d\n"
                "    ord             : %d\n",
@@ -1059,6 +1062,7 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
                ntohs(((struct sockaddr_in *)&newxprt->sc_cm_id->
                       route.addr.dst_addr)->sin_port),
                newxprt->sc_max_sge,
+               newxprt->sc_max_sge_rd,
                newxprt->sc_sq_depth,
                newxprt->sc_max_requests,
                newxprt->sc_ord);