On Thu, Jun 27, 2019 at 01:09:03PM +0100, Burakov, Anatoly wrote: > 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 <bruce.richard...@intel.com> > > --- > > <snip> > > > 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? >
No, the only place it's called from is already using the PCI device structure. I don't think the probe function can ever be called with a NULL parameter. > > + > > + /* 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? > Fixing in v4.