mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-03 20:36:39 +07:00
net/mlx4_core: Check the correct limitation on VFs for HA mode
The limit of 63 is only for virtual functions while the actual enforcement
was for VFs plus physical functions, fix that.
Fixes: e57968a10b
('net/mlx4_core: Support the HA mode for SRIOV VFs too')
Signed-off-by: Moni Shoua <monis@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
03a79f31ef
commit
00ada91039
@ -1256,6 +1256,7 @@ static ssize_t set_port_ib_mtu(struct device *dev,
|
||||
static int mlx4_mf_bond(struct mlx4_dev *dev)
|
||||
{
|
||||
int err = 0;
|
||||
int nvfs;
|
||||
struct mlx4_slaves_pport slaves_port1;
|
||||
struct mlx4_slaves_pport slaves_port2;
|
||||
DECLARE_BITMAP(slaves_port_1_2, MLX4_MFUNC_MAX);
|
||||
@ -1272,11 +1273,18 @@ static int mlx4_mf_bond(struct mlx4_dev *dev)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* number of virtual functions is number of total functions minus one
|
||||
* physical function for each port.
|
||||
*/
|
||||
nvfs = bitmap_weight(slaves_port1.slaves, dev->persist->num_vfs + 1) +
|
||||
bitmap_weight(slaves_port2.slaves, dev->persist->num_vfs + 1) - 2;
|
||||
|
||||
/* limit on maximum allowed VFs */
|
||||
if ((bitmap_weight(slaves_port1.slaves, dev->persist->num_vfs + 1) +
|
||||
bitmap_weight(slaves_port2.slaves, dev->persist->num_vfs + 1)) >
|
||||
MAX_MF_BOND_ALLOWED_SLAVES)
|
||||
if (nvfs > MAX_MF_BOND_ALLOWED_SLAVES) {
|
||||
mlx4_warn(dev, "HA mode is not supported for %d VFs (max %d are allowed)\n",
|
||||
nvfs, MAX_MF_BOND_ALLOWED_SLAVES);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (dev->caps.steering_mode != MLX4_STEERING_MODE_DEVICE_MANAGED) {
|
||||
mlx4_warn(dev, "HA mode unsupported for NON DMFS steering\n");
|
||||
|
Loading…
Reference in New Issue
Block a user