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. > + > + /* 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. > + 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; > +} > + [...]