> 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

Reply via email to