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?
+ + /* 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

