From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tan, Jianfeng" Subject: Re: [PATCH 02/12] eal: avoid calling rte_vdev_init() Date: Tue, 29 Aug 2017 15:25:06 -0700 Message-ID: <07a78942-a0d9-fcfa-f86f-be5c4651971f@intel.com> References: <1503654052-84730-1-git-send-email-jianfeng.tan@intel.com> <1503654052-84730-3-git-send-email-jianfeng.tan@intel.com> <20170829125045.GM8124@bidouze.vm.6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Cc: dev@dpdk.org, bruce.richardson@intel.com, konstantin.ananyev@intel.com, pablo.de.lara.guarch@intel.com, thomas@monjalon.net, yliu@fridaylinux.org, maxime.coquelin@redhat.com, mtetsuyah@gmail.com, ferruh.yigit@intel.com To: =?UTF-8?Q?Ga=c3=abtan_Rivet?= Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id C948E11F5 for ; Wed, 30 Aug 2017 00:25:08 +0200 (CEST) In-Reply-To: <20170829125045.GM8124@bidouze.vm.6wind.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Gaetan, On 8/29/2017 5:50 AM, Gaëtan Rivet wrote: > Hi, > > On Fri, Aug 25, 2017 at 09:40:42AM +0000, Jianfeng Tan wrote: >> We can call bus->plug() to avoid calling rte_vdev_init() explicitly. >> >> Signed-off-by: Jianfeng Tan >> --- >> lib/librte_eal/common/eal_common_dev.c | 21 +++++---------------- >> 1 file changed, 5 insertions(+), 16 deletions(-) >> >> diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c >> index e251275..066dfbf 100644 >> --- a/lib/librte_eal/common/eal_common_dev.c >> +++ b/lib/librte_eal/common/eal_common_dev.c >> @@ -67,7 +67,6 @@ static int cmp_dev_name(const struct rte_device *dev, const void *_name) >> int rte_eal_dev_attach(const char *name, const char *devargs) >> { >> struct rte_bus *bus; >> - int ret; >> >> if (name == NULL || devargs == NULL) { >> RTE_LOG(ERR, EAL, "Invalid device or arguments provided\n"); >> @@ -80,22 +79,12 @@ int rte_eal_dev_attach(const char *name, const char *devargs) >> name); >> return -EINVAL; >> } >> - if (strcmp(bus->name, "pci") == 0) >> - return rte_eal_hotplug_add("pci", name, devargs); >> - if (strcmp(bus->name, "vdev") != 0) { >> - RTE_LOG(ERR, EAL, "Device attach is only supported for PCI and vdev devices.\n"); >> - return -ENOTSUP; >> - } >> + if (strcmp(bus->name, "pci") == 0 || strcmp(bus->name, "vdev") != 0) > It seems to be a copy / paste error, it should probably be: > > + if (strcmp(bus->name, "pci") == 0 || strcmp(bus->name, "vdev") == 0) Nice catch. Will fix it in next version. > > Now, one could question the relevancy of keeping this API > (rte_eal_dev_attach / detach), but I guess this is beyond the scope of > this series. This is a valid ask. It seems a duplication of rte_eal_hotplug_add()/rte_eal_hotplug_remove(). Thanks, Jianfeng >> + return rte_eal_hotplug_add(bus->name, name, devargs); >> >> - /* >> - * If we haven't found a bus device the user meant to "hotplug" a >> - * virtual device instead. >> - */ >> - ret = rte_vdev_init(name, devargs); >> - if (ret) >> - RTE_LOG(ERR, EAL, "Driver cannot attach the device (%s)\n", >> - name); >> - return ret; >> + RTE_LOG(ERR, EAL, "Device attach is only supported for PCI and vdev devices.\n"); >> + >> + return -ENOTSUP; >> } >> >> int rte_eal_dev_detach(struct rte_device *dev) >> -- >> 2.7.4 >>