IB/ehca: Add check for max #SGE to create_qp()
Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
committed by
Roland Dreier
parent
86dce445e0
commit
b708fba3c2
@@ -513,7 +513,7 @@ static struct ehca_qp *internal_create_qp(
|
|||||||
} else if (init_attr->cap.max_send_wr > 255) {
|
} else if (init_attr->cap.max_send_wr > 255) {
|
||||||
ehca_err(pd->device,
|
ehca_err(pd->device,
|
||||||
"Invalid Number of "
|
"Invalid Number of "
|
||||||
"ax_send_wr=%x for UD QP_TYPE=%x",
|
"max_send_wr=%x for UD QP_TYPE=%x",
|
||||||
init_attr->cap.max_send_wr, qp_type);
|
init_attr->cap.max_send_wr, qp_type);
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
}
|
}
|
||||||
@@ -524,6 +524,18 @@ static struct ehca_qp *internal_create_qp(
|
|||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
int max_sge = (qp_type == IB_QPT_UD || qp_type == IB_QPT_SMI
|
||||||
|
|| qp_type == IB_QPT_GSI) ? 250 : 252;
|
||||||
|
|
||||||
|
if (init_attr->cap.max_send_sge > max_sge
|
||||||
|
|| init_attr->cap.max_recv_sge > max_sge) {
|
||||||
|
ehca_err(pd->device, "Invalid number of SGEs requested "
|
||||||
|
"send_sge=%x recv_sge=%x max_sge=%x",
|
||||||
|
init_attr->cap.max_send_sge,
|
||||||
|
init_attr->cap.max_recv_sge, max_sge);
|
||||||
|
return ERR_PTR(-EINVAL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pd->uobject && udata)
|
if (pd->uobject && udata)
|
||||||
|
Reference in New Issue
Block a user