From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 545EBA046B for ; Thu, 27 Jun 2019 14:09:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 291EB4C8B; Thu, 27 Jun 2019 14:09:09 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 0634B2C30 for ; Thu, 27 Jun 2019 14:09:06 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Jun 2019 05:09:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,423,1557212400"; d="scan'208";a="313773385" Received: from aburakov-mobl1.ger.corp.intel.com (HELO [10.252.3.102]) ([10.252.3.102]) by orsmga004.jf.intel.com with ESMTP; 27 Jun 2019 05:09:04 -0700 To: Bruce Richardson , dev@dpdk.org Cc: thomas@monjalon.net, jerinj@marvell.com References: <20190530212525.40370-1-bruce.richardson@intel.com> <20190627104055.8244-1-bruce.richardson@intel.com> <20190627104055.8244-5-bruce.richardson@intel.com> From: "Burakov, Anatoly" Message-ID: Date: Thu, 27 Jun 2019 13:09:03 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 MIME-Version: 1.0 In-Reply-To: <20190627104055.8244-5-bruce.richardson@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v3 4/8] raw/ioat: create device on probe and destroy on release X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list 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 27-Jun-19 11:40 AM, Bruce Richardson wrote: > Add the create/destroy driver functions so that we can actually allocate > a rawdev and destroy it when done. No rawdev API functions are actually > implemented at this point. > > Signed-off-by: Bruce Richardson > --- > ioat_rawdev_create(const char *name, struct rte_pci_device *dev) > { > - RTE_SET_USED(name); > - RTE_SET_USED(dev); > + static const struct rte_rawdev_ops ioat_rawdev_ops = { > + }; > + > + struct rte_rawdev *rawdev = NULL; > + struct rte_ioat_rawdev *ioat = NULL; > + int ret = 0; > + int retry = 0; > + > + if (!name) { > + IOAT_PMD_ERR("Invalid name of the device!"); > + ret = -EINVAL; > + goto cleanup; > + } Is checking `dev` not necessary here? > + > + /* Allocate device structure */ > + rawdev = rte_rawdev_pmd_allocate(name, sizeof(struct rte_ioat_rawdev), > + dev->device.numa_node); > + if (rawdev == NULL) { > + IOAT_PMD_ERR("Unable to allocate raw device"); > + ret = -EINVAL; > + goto cleanup; EINVAL is supposed to be used to indicate invalid arguments. Inability to allocate is not an "invalid arguments" condition. Does rte_rawdev_pmd_allocate() set its own errno value? If so, perhaps it would be worth passing it on? If not, perhaps -ENOMEM would be a better return value? -- Thanks, Anatoly