[dpdk-dev] [PATCH v5 1/9] rawdev: allow devices to skip extra memory allocation
Bruce Richardson
bruce.richardson at intel.com
Tue Jul 2 16:12:22 CEST 2019
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 at intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain at nxp.com>
Acked-by: Hemant Agrawal <hemant.agrawal at nxp.com>
---
V5: Added additional info to doxygen for allocate API
---
lib/librte_rawdev/rte_rawdev.c | 11 ++++++-----
lib/librte_rawdev/rte_rawdev_pmd.h | 4 +++-
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/lib/librte_rawdev/rte_rawdev.c b/lib/librte_rawdev/rte_rawdev.c
index 15de2d413..b6f1e1c77 100644
--- a/lib/librte_rawdev/rte_rawdev.c
+++ b/lib/librte_rawdev/rte_rawdev.c
@@ -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;
diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h b/lib/librte_rawdev/rte_rawdev_pmd.h
index aa6af4a37..cb3555ab5 100644
--- a/lib/librte_rawdev/rte_rawdev_pmd.h
+++ b/lib/librte_rawdev/rte_rawdev_pmd.h
@@ -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
--
2.21.0
More information about the dev
mailing list