rawdev: allow devices to skip extra memory allocation

Some device drivers want to allocate their own private memory, and should
be allowed to do so. Therefore skip memory allocation and associated error
checks if zero-length private memory is requested.

While adjusting the code for new indent level, fix incorrect error
message.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
This commit is contained in:
Bruce Richardson 2019-07-02 15:12:22 +01:00 committed by Thomas Monjalon
parent 85cf6dc3a5
commit a951e147ea
2 changed files with 9 additions and 6 deletions

View File

@ -496,16 +496,17 @@ rte_rawdev_pmd_allocate(const char *name, size_t dev_priv_size, int socket_id)
rawdev = &rte_rawdevs[dev_id];
rawdev->dev_private = rte_zmalloc_socket("rawdev private",
if (dev_priv_size > 0) {
rawdev->dev_private = rte_zmalloc_socket("rawdev private",
dev_priv_size,
RTE_CACHE_LINE_SIZE,
socket_id);
if (!rawdev->dev_private) {
RTE_RDEV_ERR("Unable to allocate memory to Skeleton dev");
return NULL;
if (!rawdev->dev_private) {
RTE_RDEV_ERR("Unable to allocate memory for rawdev");
return NULL;
}
}
rawdev->dev_id = dev_id;
rawdev->socket_id = socket_id;
rawdev->started = 0;

View File

@ -568,7 +568,9 @@ struct rte_rawdev_ops {
* @param name
* Unique identifier name for each device
* @param dev_private_size
* Private data allocated within rte_rawdev object.
* Size of private data memory allocated within rte_rawdev object.
* Set to 0 to disable internal memory allocation and allow for
* self-allocation.
* @param socket_id
* Socket to allocate resources on.
* @return