mirror of https://gitee.com/openkylin/linux.git
net/mlx4_core: Fix checking order in MR table init
In procedure mlx4_init_mr_table(), slaves should do no processing, but should return success. This initialization is hypervisor-only. However, the check for num_mpts being a power-of-2 was performed before the check to return immediately if the driver is for a slave. This resulted in spurious failures. The order of performing the checks is reversed, so that if the driver is for a slave, no processing is done and success is returned. 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
2c957ff27d
commit
a30f1bc5c0
drivers/net/ethernet/mellanox/mlx4
|
@ -755,14 +755,14 @@ int mlx4_init_mr_table(struct mlx4_dev *dev)
|
|||
struct mlx4_mr_table *mr_table = &priv->mr_table;
|
||||
int err;
|
||||
|
||||
if (!is_power_of_2(dev->caps.num_mpts))
|
||||
return -EINVAL;
|
||||
|
||||
/* Nothing to do for slaves - all MR handling is forwarded
|
||||
* to the master */
|
||||
if (mlx4_is_slave(dev))
|
||||
return 0;
|
||||
|
||||
if (!is_power_of_2(dev->caps.num_mpts))
|
||||
return -EINVAL;
|
||||
|
||||
err = mlx4_bitmap_init(&mr_table->mpt_bitmap, dev->caps.num_mpts,
|
||||
~0, dev->caps.reserved_mrws, 0);
|
||||
if (err)
|
||||
|
|
Loading…
Reference in New Issue