From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tiwei Bie Subject: Re: [PATCH v2 1/5] net/virtio: prevent simple Tx path selection by default Date: Thu, 7 Jun 2018 15:53:53 +0800 Message-ID: <20180607075353.GA15456@debian> References: <20180606123128.7868-1-maxime.coquelin@redhat.com> <20180606123128.7868-2-maxime.coquelin@redhat.com> <20180607054323.GE32696@debian> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Cc: zhihong.wang@intel.com, dev@dpdk.org To: Maxime Coquelin Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 20DAA1AFEB for ; Thu, 7 Jun 2018 09:53:41 +0200 (CEST) Content-Disposition: inline In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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