[dpdk-dev] [PATCH] ethdev: add size and align to compose dma zone name strings
wangyunjian
wangyunjian at huawei.com
Sat Apr 27 10:38:44 CEST 2019
From: Yunjian Wang <wangyunjian at huawei.com>
The current dma zone name consists of the port_id, queue_id and
ring_name. If a port_id is reused, a new nic maybe use same dma
zone name. At this time, the zone size of the new driver is
differnt. When the zone is reused, it may cause illegal access
to memory.
Signed-off-by: Yunjian Wang <wangyunjian at huawei.com>
---
lib/librte_ethdev/rte_ethdev.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index d7cfa3d..3242737 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -3630,9 +3630,9 @@ int rte_eth_set_queue_rate_limit(uint16_t port_id, uint16_t queue_idx,
const struct rte_memzone *mz;
int rc;
- rc = snprintf(z_name, sizeof(z_name), "eth_p%d_q%d_%s",
+ rc = snprintf(z_name, sizeof(z_name), "p%dq%d%s0x%zx_%d",
dev->data->port_id, queue_id, ring_name);
- if (rc >= RTE_MEMZONE_NAMESIZE) {
+ if (rc >= RTE_MEMZONE_NAMESIZE || rx < 0) {
RTE_ETHDEV_LOG(ERR, "ring name too long\n");
rte_errno = ENAMETOOLONG;
return NULL;
--
1.8.3.1
More information about the dev
mailing list