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