mlx4: Activate RoCE/SRIOV
To activate RoCE/SRIOV, need to remove the following: 1. In mlx4_ib_add, need to remove the error return preventing initialization of a RoCE port under SRIOV. 2. In update_vport_qp_params (in resource_tracker.c) need to remove the error return when a RoCE RC or UD qp is detected. This error return causes the INIT-to-RTR qp transition to fail in the wrapper function under RoCE/SRIOV. Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ceb5433b3a
commit
aa9a2d51a3
@ -1888,14 +1888,6 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
|
|||||||
|
|
||||||
pr_info_once("%s", mlx4_ib_version);
|
pr_info_once("%s", mlx4_ib_version);
|
||||||
|
|
||||||
mlx4_foreach_non_ib_transport_port(i, dev)
|
|
||||||
num_ports++;
|
|
||||||
|
|
||||||
if (mlx4_is_mfunc(dev) && num_ports) {
|
|
||||||
dev_err(&dev->pdev->dev, "RoCE is not supported over SRIOV as yet\n");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
num_ports = 0;
|
num_ports = 0;
|
||||||
mlx4_foreach_ib_transport_port(i, dev)
|
mlx4_foreach_ib_transport_port(i, dev)
|
||||||
num_ports++;
|
num_ports++;
|
||||||
|
@ -645,7 +645,6 @@ static int update_vport_qp_param(struct mlx4_dev *dev,
|
|||||||
struct mlx4_qp_context *qpc = inbox->buf + 8;
|
struct mlx4_qp_context *qpc = inbox->buf + 8;
|
||||||
struct mlx4_vport_oper_state *vp_oper;
|
struct mlx4_vport_oper_state *vp_oper;
|
||||||
struct mlx4_priv *priv;
|
struct mlx4_priv *priv;
|
||||||
u32 qp_type;
|
|
||||||
int port;
|
int port;
|
||||||
|
|
||||||
port = (qpc->pri_path.sched_queue & 0x40) ? 2 : 1;
|
port = (qpc->pri_path.sched_queue & 0x40) ? 2 : 1;
|
||||||
@ -653,12 +652,6 @@ static int update_vport_qp_param(struct mlx4_dev *dev,
|
|||||||
vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port];
|
vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port];
|
||||||
|
|
||||||
if (MLX4_VGT != vp_oper->state.default_vlan) {
|
if (MLX4_VGT != vp_oper->state.default_vlan) {
|
||||||
qp_type = (be32_to_cpu(qpc->flags) >> 16) & 0xff;
|
|
||||||
if (MLX4_QP_ST_RC == qp_type ||
|
|
||||||
(MLX4_QP_ST_UD == qp_type &&
|
|
||||||
!mlx4_is_qp_reserved(dev, qpn)))
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
/* the reserved QPs (special, proxy, tunnel)
|
/* the reserved QPs (special, proxy, tunnel)
|
||||||
* do not operate over vlans
|
* do not operate over vlans
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user