IB/mlx5: When not in dual port RoCE mode, use provided port as native
The series that introduced dual port RoCE mode assumed that we don't have
a dual port HCA that use the mlx5 driver, this is not the case for
Connect-IB HCAs. This reasoning led to assigning 1 as the native port
index which causes issue when the second port is used.
For example query_pkey() when called on the second port will return values
of the first port. Make sure that we assign the right port index as the
native port index.
Fixes: 32f69e4be2
("{net, IB}/mlx5: Manage port association for multiport RoCE")
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
a18177925c
commit
210b1f7807
1 changed files with 7 additions and 3 deletions
|
@ -245,12 +245,16 @@ struct mlx5_core_dev *mlx5_ib_get_native_port_mdev(struct mlx5_ib_dev *ibdev,
|
||||||
struct mlx5_ib_multiport_info *mpi;
|
struct mlx5_ib_multiport_info *mpi;
|
||||||
struct mlx5_ib_port *port;
|
struct mlx5_ib_port *port;
|
||||||
|
|
||||||
|
if (!mlx5_core_mp_enabled(ibdev->mdev) ||
|
||||||
|
ll != IB_LINK_LAYER_ETHERNET) {
|
||||||
|
if (native_port_num)
|
||||||
|
*native_port_num = ib_port_num;
|
||||||
|
return ibdev->mdev;
|
||||||
|
}
|
||||||
|
|
||||||
if (native_port_num)
|
if (native_port_num)
|
||||||
*native_port_num = 1;
|
*native_port_num = 1;
|
||||||
|
|
||||||
if (!mlx5_core_mp_enabled(ibdev->mdev) || ll != IB_LINK_LAYER_ETHERNET)
|
|
||||||
return ibdev->mdev;
|
|
||||||
|
|
||||||
port = &ibdev->port[ib_port_num - 1];
|
port = &ibdev->port[ib_port_num - 1];
|
||||||
if (!port)
|
if (!port)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Add table
Reference in a new issue