mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
svcrdma: remove rdma_create_qp() failure recovery logic
In svc_rdma_accept(), if rdma_create_qp() fails, there is useless logic to try and call rdma_create_qp() again with reduced sge depths. The assumption, I guess, was that perhaps the initial sge depths chosen were too big. However they initial depths are selected based on the rdma device attribute max_sge returned from ib_query_device(). If rdma_create_qp() fails, it would not be because the max_send_sge and max_recv_sge values passed in exceed the device's max. So just remove this code. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
14a571a8ec
commit
d1e458fe67
@ -943,23 +943,8 @@ static struct svc_xprt *svc_rdma_accept(struct svc_xprt *xprt)
|
||||
|
||||
ret = rdma_create_qp(newxprt->sc_cm_id, newxprt->sc_pd, &qp_attr);
|
||||
if (ret) {
|
||||
/*
|
||||
* XXX: This is a hack. We need a xx_request_qp interface
|
||||
* that will adjust the qp_attr's with a best-effort
|
||||
* number
|
||||
*/
|
||||
qp_attr.cap.max_send_sge -= 2;
|
||||
qp_attr.cap.max_recv_sge -= 2;
|
||||
ret = rdma_create_qp(newxprt->sc_cm_id, newxprt->sc_pd,
|
||||
&qp_attr);
|
||||
if (ret) {
|
||||
dprintk("svcrdma: failed to create QP, ret=%d\n", ret);
|
||||
goto errout;
|
||||
}
|
||||
newxprt->sc_max_sge = qp_attr.cap.max_send_sge;
|
||||
newxprt->sc_max_sge = qp_attr.cap.max_recv_sge;
|
||||
newxprt->sc_sq_depth = qp_attr.cap.max_send_wr;
|
||||
newxprt->sc_max_requests = qp_attr.cap.max_recv_wr;
|
||||
dprintk("svcrdma: failed to create QP, ret=%d\n", ret);
|
||||
goto errout;
|
||||
}
|
||||
newxprt->sc_qp = newxprt->sc_cm_id->qp;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user