On Tue, May 01, 2018 at 11:13:20PM -0700, Yongseok Koh wrote: > rte_eth_devices[] is not shared between primary and secondary process, but > a static array to each process. The backward pointer of device (priv->dev) > must be reset when a secondary process attaches to a device. > > Fixes: f8b9a3bad467 ("net/mlx5: install a socket to exchange a file > descriptor") > Cc: sta...@dpdk.org > > Signed-off-by: Yongseok Koh <ys...@mellanox.com> Acked-by: Nelio Laranjeiro <nelio.laranje...@6wind.com> > --- > drivers/net/mlx5/mlx5.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c > index 8f983061a..f606e3dd4 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -799,6 +799,12 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv > __rte_unused, > } > eth_dev->device = &pci_dev->device; > eth_dev->dev_ops = &mlx5_dev_sec_ops; > + /* > + * rte_eth_devices[] is not shared but static to each > + * process. The backward pointer should be reset. > + */ > + priv = eth_dev->data->dev_private; > + priv->dev = eth_dev; > err = mlx5_uar_init_secondary(eth_dev); > if (err) > goto error; > -- > 2.11.0 >
-- Nélio Laranjeiro 6WIND