[dpdk-dev] [dpdk-stable] [PATCH 08/11] ethdev: fix port visibility before initialization
Thomas Monjalon
thomas at monjalon.net
Wed May 9 21:08:21 CEST 2018
09/05/2018 20:03, Ferruh Yigit:
> On 5/9/2018 10:43 AM, Thomas Monjalon wrote:
> > The port was set to the state ATTACHED during allocation.
> > The consequence was to iterate over ports which are not initialized.
> >
> > The state ATTACHED is now set as the last step of probing.
> >
> > The uniqueness of port name is now checked before the availability
> > of a port id for allocation (order reversed).
> >
> > As the state is not set on allocation anymore, it is also not checked
> > in the function telling whether a port is allocated or not.
> > The name of the port is set on allocation, so it is enough as a check.
> >
> > Fixes: 5588909af21b ("ethdev: add device iterator")
> > Cc: stable at dpdk.org
> >
> > Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> > Signed-off-by: Matan Azrad <matan at mellanox.com>
> > ---
> > @@ -3387,6 +3385,8 @@ rte_eth_dev_probing_finish(struct rte_eth_dev *dev)
> > {
> > if (dev == NULL)
> > return;
> > +
> > + dev->state = RTE_ETH_DEV_ATTACHED;
>
> Aren't ethdev allocation and probe in different levels? Why not make ethdev
> allocation self sufficient but tie it to the device probe() ?
Ethdev allocation is self sufficient.
Probing is done by the PMD with these steps:
1/ allocate ethdev port
2/ initialize device
3/ notify NEW event and set ethdev status
More information about the dev
mailing list