> On May 1, 2018, at 11:53 PM, Nélio Laranjeiro <nelio.laranje...@6wind.com> > wrote: > > 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>
Sorry, self NACK. priv->dev is shared, so if it is changed by secondary process, primary will get affected. Will come up with a different idea... Thanks, Yongseok >> --- >> 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