net/mlx5: fix multi-process port ID
The device port_id is used for inter-process communication and must
be the same both for primary and secondary process
This IPC port_id was configured with the invalid temporary value in
port spawn routine. This temporary value was used by the function
rte_eth_dev_get_port_by_name() to check whether the port exists.
This commit corrects the mp port_id with rte_eth_dev port_id.
Fixes: 2eb4d0107a
("net/mlx5: refactor PCI probing on Linux")
Cc: stable@dpdk.org
Signed-off-by: Suanming Mou <suanmingm@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
This commit is contained in:
parent
3ceeed9f78
commit
39ae757770
@ -930,8 +930,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
|
||||
priv->dev_port = spawn->phys_port;
|
||||
priv->pci_dev = spawn->pci_dev;
|
||||
priv->mtu = RTE_ETHER_MTU;
|
||||
priv->mp_id.port_id = port_id;
|
||||
strlcpy(priv->mp_id.name, MLX5_MP_NAME, RTE_MP_MAX_NAME_LEN);
|
||||
/* Some internal functions rely on Netlink sockets, open them now. */
|
||||
priv->nl_socket_rdma = mlx5_nl_init(NETLINK_RDMA);
|
||||
priv->nl_socket_route = mlx5_nl_init(NETLINK_ROUTE);
|
||||
@ -1347,6 +1345,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
|
||||
eth_dev->data->dev_flags |= RTE_ETH_DEV_REPRESENTOR;
|
||||
eth_dev->data->representor_id = priv->representor_id;
|
||||
}
|
||||
priv->mp_id.port_id = eth_dev->data->port_id;
|
||||
strlcpy(priv->mp_id.name, MLX5_MP_NAME, RTE_MP_MAX_NAME_LEN);
|
||||
/*
|
||||
* Store associated network device interface index. This index
|
||||
* is permanent throughout the lifetime of device. So, we may store
|
||||
|
Loading…
Reference in New Issue
Block a user