mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-22 12:33:59 +08:00
IB/ipath: Fix sanity checks on QP number of WRs and SGEs
The receive queue number of WRs and SGEs shouldn't be checked if a SRQ is specified. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
69bd74c696
commit
10a8c3cd01
@ -748,19 +748,25 @@ struct ib_qp *ipath_create_qp(struct ib_pd *ibpd,
|
||||
struct ib_qp *ret;
|
||||
|
||||
if (init_attr->cap.max_send_sge > ib_ipath_max_sges ||
|
||||
init_attr->cap.max_recv_sge > ib_ipath_max_sges ||
|
||||
init_attr->cap.max_send_wr > ib_ipath_max_qp_wrs ||
|
||||
init_attr->cap.max_recv_wr > ib_ipath_max_qp_wrs) {
|
||||
ret = ERR_PTR(-ENOMEM);
|
||||
init_attr->cap.max_send_wr > ib_ipath_max_qp_wrs) {
|
||||
ret = ERR_PTR(-EINVAL);
|
||||
goto bail;
|
||||
}
|
||||
|
||||
if (init_attr->cap.max_send_sge +
|
||||
init_attr->cap.max_recv_sge +
|
||||
init_attr->cap.max_send_wr +
|
||||
init_attr->cap.max_recv_wr == 0) {
|
||||
ret = ERR_PTR(-EINVAL);
|
||||
goto bail;
|
||||
/* Check receive queue parameters if no SRQ is specified. */
|
||||
if (!init_attr->srq) {
|
||||
if (init_attr->cap.max_recv_sge > ib_ipath_max_sges ||
|
||||
init_attr->cap.max_recv_wr > ib_ipath_max_qp_wrs) {
|
||||
ret = ERR_PTR(-EINVAL);
|
||||
goto bail;
|
||||
}
|
||||
if (init_attr->cap.max_send_sge +
|
||||
init_attr->cap.max_send_wr +
|
||||
init_attr->cap.max_recv_sge +
|
||||
init_attr->cap.max_recv_wr == 0) {
|
||||
ret = ERR_PTR(-EINVAL);
|
||||
goto bail;
|
||||
}
|
||||
}
|
||||
|
||||
switch (init_attr->qp_type) {
|
||||
|
Loading…
Reference in New Issue
Block a user