[dpdk-dev] [PATCH v3 1/6] ethdev: add devop to check removal status
Gaëtan Rivet
gaetan.rivet at 6wind.com
Tue Dec 19 23:13:22 CET 2017
On Tue, Dec 19, 2017 at 09:51:10PM +0100, Thomas Monjalon wrote:
> 19/12/2017 18:24, Matan Azrad:
> > HI
> >
> > > -----Original Message-----
> > > From: Stephen Hemminger [mailto:stephen at networkplumber.org]
> > > Sent: Tuesday, December 19, 2017 7:20 PM
> > > To: Matan Azrad <matan at mellanox.com>
> > > Cc: Adrien Mazarguil <adrien.mazarguil at 6wind.com>; Thomas Monjalon
> > > <thomas at monjalon.net>; Gaetan Rivet <gaetan.rivet at 6wind.com>;
> > > dev at dpdk.org
> > > Subject: Re: [dpdk-dev] [PATCH v3 1/6] ethdev: add devop to check removal
> > > status
> > >
> > > On Tue, 19 Dec 2017 17:10:10 +0000
> > > Matan Azrad <matan at mellanox.com> wrote:
> > >
> > > > int
> > > > +rte_eth_dev_is_removed(uint16_t port_id) {
> > > > + struct rte_eth_dev *dev;
> > > > + int ret;
> > > > +
> > > > + RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, 0);
> > > > +
> > > > + dev = &rte_eth_devices[port_id];
> > > > +
> > > > + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->is_removed, 0);
> > > > +
> > > > + if (dev->state == RTE_ETH_DEV_REMOVED)
> > > > + return 1;
> > > > +
> > > > + ret = dev->dev_ops->is_removed(dev);
> > > > + if (ret != 0)
> > > > + dev->state = RTE_ETH_DEV_REMOVED;
> > > > +
> > > > + return ret;
> > > > +}
> > > > +
> > >
> > > This looks good.
> > > May be a candidate to use bool instead of int for return value?
> >
> > Yes, I thought about it but didn't see any precedence for bool usage in ethdev APIs.
> > Guys, what do you think?
>
> I think this function can return error, isn't it?
> (look at macros *_OR_ERR_RET used in the function)
>
But those macros are used to return 0.
While I think I see a logic behind it, I think it is surprising the
API user, which is not ideal.
--
Gaëtan Rivet
6WIND
More information about the dev
mailing list