[dpdk-dev] [PATCH v2 1/5] net/virtio: prevent simple Tx path selection by default
Tiwei Bie
tiwei.bie at intel.com
Thu Jun 7 09:53:53 CEST 2018
On Thu, Jun 07, 2018 at 09:40:35AM +0200, Maxime Coquelin wrote:
> On 06/07/2018 07:43 AM, Tiwei Bie wrote:
> > On Wed, Jun 06, 2018 at 02:31:24PM +0200, Maxime Coquelin wrote:
> > [...]
> > > +
> > > +static int
> > > +virtio_dev_args(struct rte_eth_dev *dev)
> > > +{
> > > + struct rte_kvargs *kvlist;
> > > + struct rte_devargs *devargs;
> > > + const char *valid_args[] = {
> > > + VIRTIO_SIMPLE_TX_SUPPORT,
> > > + NULL,
> > > + };
> > > + int ret;
> > > + int i;
> > > +
> > > + devargs = dev->device->devargs;
> > > + if (!devargs)
> > > + return 0; /* return success */
> > > +
> > > + kvlist = rte_kvargs_parse(devargs->args, valid_args);
> > > + if (kvlist == NULL)
> > > + return -EINVAL;
> >
> > Virtio-user has defined some other mandatory devargs.
> > The parse will fail when other devargs have been
> > specified.
>
> Ok, so IIUC, just returning 0 here should do the trick, right?
I think you can't just return 0 in this case,
because you still need to find and parse the
VIRTIO_SIMPLE_TX_SUPPORT devarg.
I didn't look into the kvargs code. It seems
that you can pass NULL as the second param
when calling rte_kvargs_parse(), i.e. just
get the KV list without valid keys check.
Best regards,
Tiwei Bie
>
> > > +
> > > + /* Process parameters. */
> > > + for (i = 0; (valid_args[i] != NULL); ++i) {
> >
> > There is an extra space before the comment.
> > The () around `valid_args[i] != NULL` isn't necessary.
>
> Fixed.
>
> > > + if (rte_kvargs_count(kvlist, valid_args[i])) {
> > > + ret = rte_kvargs_process(kvlist, valid_args[i],
> > > + virtio_dev_args_check, dev);
> > > + if (ret) {
> > > + rte_kvargs_free(kvlist);
> > > + return ret;
> > > + }
> > > + }
> > > + }
> > > + rte_kvargs_free(kvlist);
> > > +
> > > + return 0;
> > > +}
> > > +
> > [...]
> >
>
> Thanks!
> Maxime
More information about the dev
mailing list