DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/4] net/ring: driver fixes
@ 2019-04-23 16:48 Stephen Hemminger
  2019-04-23 16:48 ` Stephen Hemminger
                   ` (5 more replies)
  0 siblings, 6 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Minor fixes for the net/ring driver.

Stephen Hemminger (4):
  net/ring: fix coding style
  net/ring: use sizeof() with snprintf
  net/ring: use rte_calloc_socket
  net/ring: check length of ring name

 drivers/net/ring/rte_eth_ring.c | 90 ++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 35 deletions(-)

-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 0/4] net/ring: driver fixes
  2019-04-23 16:48 [dpdk-dev] [PATCH 0/4] net/ring: driver fixes Stephen Hemminger
@ 2019-04-23 16:48 ` Stephen Hemminger
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 1/4] net/ring: fix coding style Stephen Hemminger
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Minor fixes for the net/ring driver.

Stephen Hemminger (4):
  net/ring: fix coding style
  net/ring: use sizeof() with snprintf
  net/ring: use rte_calloc_socket
  net/ring: check length of ring name

 drivers/net/ring/rte_eth_ring.c | 90 ++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 35 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 1/4] net/ring: fix coding style
  2019-04-23 16:48 [dpdk-dev] [PATCH 0/4] net/ring: driver fixes Stephen Hemminger
  2019-04-23 16:48 ` Stephen Hemminger
@ 2019-04-23 16:48 ` Stephen Hemminger
  2019-04-23 16:48   ` Stephen Hemminger
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 2/4] net/ring: use sizeof() with snprintf Stephen Hemminger
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger, Stephen Hemminger

Whitespace fixes to bring inline with current DPDK style.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 drivers/net/ring/rte_eth_ring.c | 58 ++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 26 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 115a882b507c..91e5f5f8f262 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -45,8 +45,8 @@ struct ring_queue {
 };
 
 struct pmd_internals {
-	unsigned max_rx_queues;
-	unsigned max_tx_queues;
+	unsigned int max_rx_queues;
+	unsigned int max_tx_queues;
 
 	struct ring_queue rx_ring_queues[RTE_PMD_RING_MAX_RX_RINGS];
 	struct ring_queue tx_ring_queues[RTE_PMD_RING_MAX_TX_RINGS];
@@ -55,12 +55,11 @@ struct pmd_internals {
 	enum dev_action action;
 };
 
-
 static struct rte_eth_link pmd_link = {
-		.link_speed = ETH_SPEED_NUM_10G,
-		.link_duplex = ETH_LINK_FULL_DUPLEX,
-		.link_status = ETH_LINK_DOWN,
-		.link_autoneg = ETH_LINK_FIXED,
+	.link_speed = ETH_SPEED_NUM_10G,
+	.link_duplex = ETH_LINK_FULL_DUPLEX,
+	.link_status = ETH_LINK_DOWN,
+	.link_autoneg = ETH_LINK_FIXED,
 };
 
 static int eth_ring_logtype;
@@ -138,6 +137,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
 				    struct rte_mempool *mb_pool __rte_unused)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev->data->rx_queues[rx_queue_id] = &internals->rx_ring_queues[rx_queue_id];
 	return 0;
 }
@@ -149,6 +149,7 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 				    const struct rte_eth_txconf *tx_conf __rte_unused)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev->data->tx_queues[tx_queue_id] = &internals->tx_ring_queues[tx_queue_id];
 	return 0;
 }
@@ -156,9 +157,10 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 
 static void
 eth_dev_info(struct rte_eth_dev *dev,
-		struct rte_eth_dev_info *dev_info)
+	     struct rte_eth_dev_info *dev_info)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev_info->max_mac_addrs = 1;
 	dev_info->max_rx_pktlen = (uint32_t)-1;
 	dev_info->max_rx_queues = (uint16_t)internals->max_rx_queues;
@@ -169,7 +171,7 @@ eth_dev_info(struct rte_eth_dev *dev,
 static int
 eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 {
-	unsigned i;
+	unsigned int i;
 	unsigned long rx_total = 0, tx_total = 0, tx_err_total = 0;
 	const struct pmd_internals *internal = dev->data->dev_private;
 
@@ -197,8 +199,9 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 static void
 eth_stats_reset(struct rte_eth_dev *dev)
 {
-	unsigned i;
+	unsigned int i;
 	struct pmd_internals *internal = dev->data->dev_private;
+
 	for (i = 0; i < dev->data->nb_rx_queues; i++)
 		internal->rx_ring_queues[i].rx_pkts.cnt = 0;
 	for (i = 0; i < dev->data->nb_tx_queues; i++) {
@@ -250,8 +253,10 @@ static struct rte_vdev_driver pmd_ring_drv;
 
 static int
 do_eth_dev_ring_create(const char *name,
-		struct rte_ring * const rx_queues[], const unsigned nb_rx_queues,
-		struct rte_ring *const tx_queues[], const unsigned nb_tx_queues,
+		struct rte_ring * const rx_queues[],
+		const unsigned int nb_rx_queues,
+		struct rte_ring *const tx_queues[],
+		const unsigned int nb_tx_queues,
 		const unsigned int numa_node, enum dev_action action,
 		struct rte_eth_dev **eth_dev_p)
 {
@@ -260,7 +265,7 @@ do_eth_dev_ring_create(const char *name,
 	struct rte_eth_dev *eth_dev = NULL;
 	void **rx_queues_local = NULL;
 	void **tx_queues_local = NULL;
-	unsigned i;
+	unsigned int i;
 
 	PMD_LOG(INFO, "Creating rings-backed ethdev on numa socket %u",
 			numa_node);
@@ -344,10 +349,10 @@ do_eth_dev_ring_create(const char *name,
 
 int
 rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
-		const unsigned nb_rx_queues,
+		const unsigned int nb_rx_queues,
 		struct rte_ring *const tx_queues[],
-		const unsigned nb_tx_queues,
-		const unsigned numa_node)
+		const unsigned int nb_tx_queues,
+		const unsigned int numa_node)
 {
 	struct ring_internal_args args = {
 		.rx_queues = rx_queues,
@@ -398,16 +403,16 @@ rte_eth_from_ring(struct rte_ring *r)
 }
 
 static int
-eth_dev_ring_create(const char *name, const unsigned numa_node,
+eth_dev_ring_create(const char *name, const unsigned int numa_node,
 		enum dev_action action, struct rte_eth_dev **eth_dev)
 {
 	/* rx and tx are so-called from point of view of first port.
 	 * They are inverted from the point of view of second port
 	 */
 	struct rte_ring *rxtx[RTE_PMD_RING_MAX_RX_RINGS];
-	unsigned i;
+	unsigned int i;
 	char rng_name[RTE_RING_NAMESIZE];
-	unsigned num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
+	unsigned int num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
@@ -429,17 +434,18 @@ eth_dev_ring_create(const char *name, const unsigned numa_node,
 
 struct node_action_pair {
 	char name[PATH_MAX];
-	unsigned node;
+	unsigned int node;
 	enum dev_action action;
 };
 
 struct node_action_list {
-	unsigned total;
-	unsigned count;
+	unsigned int total;
+	unsigned int count;
 	struct node_action_pair *list;
 };
 
-static int parse_kvlist (const char *key __rte_unused, const char *value, void *data)
+static int parse_kvlist(const char *key __rte_unused,
+			const char *value, void *data)
 {
 	struct node_action_list *info = data;
 	int ret;
@@ -553,8 +559,8 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev)
 		kvlist = rte_kvargs_parse(params, valid_arguments);
 
 		if (!kvlist) {
-			PMD_LOG(INFO, "Ignoring unsupported parameters when creating"
-					" rings-backed ethernet device");
+			PMD_LOG(INFO,
+				"Ignoring unsupported parameters when creatingrings-backed ethernet device");
 			ret = eth_dev_ring_create(name, rte_socket_id(),
 						  DEV_CREATE, &eth_dev);
 			if (ret == -1) {
@@ -598,7 +604,7 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev)
 				goto out_free;
 
 			info->total = ret;
-			info->list = (struct node_action_pair*)(info + 1);
+			info->list = (struct node_action_pair *)(info + 1);
 
 			ret = rte_kvargs_process(kvlist, ETH_RING_NUMA_NODE_ACTION_ARG,
 						 parse_kvlist, info);
-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 1/4] net/ring: fix coding style
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 1/4] net/ring: fix coding style Stephen Hemminger
@ 2019-04-23 16:48   ` Stephen Hemminger
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger, Stephen Hemminger

Whitespace fixes to bring inline with current DPDK style.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 drivers/net/ring/rte_eth_ring.c | 58 ++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 26 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 115a882b507c..91e5f5f8f262 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -45,8 +45,8 @@ struct ring_queue {
 };
 
 struct pmd_internals {
-	unsigned max_rx_queues;
-	unsigned max_tx_queues;
+	unsigned int max_rx_queues;
+	unsigned int max_tx_queues;
 
 	struct ring_queue rx_ring_queues[RTE_PMD_RING_MAX_RX_RINGS];
 	struct ring_queue tx_ring_queues[RTE_PMD_RING_MAX_TX_RINGS];
@@ -55,12 +55,11 @@ struct pmd_internals {
 	enum dev_action action;
 };
 
-
 static struct rte_eth_link pmd_link = {
-		.link_speed = ETH_SPEED_NUM_10G,
-		.link_duplex = ETH_LINK_FULL_DUPLEX,
-		.link_status = ETH_LINK_DOWN,
-		.link_autoneg = ETH_LINK_FIXED,
+	.link_speed = ETH_SPEED_NUM_10G,
+	.link_duplex = ETH_LINK_FULL_DUPLEX,
+	.link_status = ETH_LINK_DOWN,
+	.link_autoneg = ETH_LINK_FIXED,
 };
 
 static int eth_ring_logtype;
@@ -138,6 +137,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
 				    struct rte_mempool *mb_pool __rte_unused)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev->data->rx_queues[rx_queue_id] = &internals->rx_ring_queues[rx_queue_id];
 	return 0;
 }
@@ -149,6 +149,7 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 				    const struct rte_eth_txconf *tx_conf __rte_unused)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev->data->tx_queues[tx_queue_id] = &internals->tx_ring_queues[tx_queue_id];
 	return 0;
 }
@@ -156,9 +157,10 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 
 static void
 eth_dev_info(struct rte_eth_dev *dev,
-		struct rte_eth_dev_info *dev_info)
+	     struct rte_eth_dev_info *dev_info)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev_info->max_mac_addrs = 1;
 	dev_info->max_rx_pktlen = (uint32_t)-1;
 	dev_info->max_rx_queues = (uint16_t)internals->max_rx_queues;
@@ -169,7 +171,7 @@ eth_dev_info(struct rte_eth_dev *dev,
 static int
 eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 {
-	unsigned i;
+	unsigned int i;
 	unsigned long rx_total = 0, tx_total = 0, tx_err_total = 0;
 	const struct pmd_internals *internal = dev->data->dev_private;
 
@@ -197,8 +199,9 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 static void
 eth_stats_reset(struct rte_eth_dev *dev)
 {
-	unsigned i;
+	unsigned int i;
 	struct pmd_internals *internal = dev->data->dev_private;
+
 	for (i = 0; i < dev->data->nb_rx_queues; i++)
 		internal->rx_ring_queues[i].rx_pkts.cnt = 0;
 	for (i = 0; i < dev->data->nb_tx_queues; i++) {
@@ -250,8 +253,10 @@ static struct rte_vdev_driver pmd_ring_drv;
 
 static int
 do_eth_dev_ring_create(const char *name,
-		struct rte_ring * const rx_queues[], const unsigned nb_rx_queues,
-		struct rte_ring *const tx_queues[], const unsigned nb_tx_queues,
+		struct rte_ring * const rx_queues[],
+		const unsigned int nb_rx_queues,
+		struct rte_ring *const tx_queues[],
+		const unsigned int nb_tx_queues,
 		const unsigned int numa_node, enum dev_action action,
 		struct rte_eth_dev **eth_dev_p)
 {
@@ -260,7 +265,7 @@ do_eth_dev_ring_create(const char *name,
 	struct rte_eth_dev *eth_dev = NULL;
 	void **rx_queues_local = NULL;
 	void **tx_queues_local = NULL;
-	unsigned i;
+	unsigned int i;
 
 	PMD_LOG(INFO, "Creating rings-backed ethdev on numa socket %u",
 			numa_node);
@@ -344,10 +349,10 @@ do_eth_dev_ring_create(const char *name,
 
 int
 rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
-		const unsigned nb_rx_queues,
+		const unsigned int nb_rx_queues,
 		struct rte_ring *const tx_queues[],
-		const unsigned nb_tx_queues,
-		const unsigned numa_node)
+		const unsigned int nb_tx_queues,
+		const unsigned int numa_node)
 {
 	struct ring_internal_args args = {
 		.rx_queues = rx_queues,
@@ -398,16 +403,16 @@ rte_eth_from_ring(struct rte_ring *r)
 }
 
 static int
-eth_dev_ring_create(const char *name, const unsigned numa_node,
+eth_dev_ring_create(const char *name, const unsigned int numa_node,
 		enum dev_action action, struct rte_eth_dev **eth_dev)
 {
 	/* rx and tx are so-called from point of view of first port.
 	 * They are inverted from the point of view of second port
 	 */
 	struct rte_ring *rxtx[RTE_PMD_RING_MAX_RX_RINGS];
-	unsigned i;
+	unsigned int i;
 	char rng_name[RTE_RING_NAMESIZE];
-	unsigned num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
+	unsigned int num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
@@ -429,17 +434,18 @@ eth_dev_ring_create(const char *name, const unsigned numa_node,
 
 struct node_action_pair {
 	char name[PATH_MAX];
-	unsigned node;
+	unsigned int node;
 	enum dev_action action;
 };
 
 struct node_action_list {
-	unsigned total;
-	unsigned count;
+	unsigned int total;
+	unsigned int count;
 	struct node_action_pair *list;
 };
 
-static int parse_kvlist (const char *key __rte_unused, const char *value, void *data)
+static int parse_kvlist(const char *key __rte_unused,
+			const char *value, void *data)
 {
 	struct node_action_list *info = data;
 	int ret;
@@ -553,8 +559,8 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev)
 		kvlist = rte_kvargs_parse(params, valid_arguments);
 
 		if (!kvlist) {
-			PMD_LOG(INFO, "Ignoring unsupported parameters when creating"
-					" rings-backed ethernet device");
+			PMD_LOG(INFO,
+				"Ignoring unsupported parameters when creatingrings-backed ethernet device");
 			ret = eth_dev_ring_create(name, rte_socket_id(),
 						  DEV_CREATE, &eth_dev);
 			if (ret == -1) {
@@ -598,7 +604,7 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev)
 				goto out_free;
 
 			info->total = ret;
-			info->list = (struct node_action_pair*)(info + 1);
+			info->list = (struct node_action_pair *)(info + 1);
 
 			ret = rte_kvargs_process(kvlist, ETH_RING_NUMA_NODE_ACTION_ARG,
 						 parse_kvlist, info);
-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 2/4] net/ring: use sizeof() with snprintf
  2019-04-23 16:48 [dpdk-dev] [PATCH 0/4] net/ring: driver fixes Stephen Hemminger
  2019-04-23 16:48 ` Stephen Hemminger
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 1/4] net/ring: fix coding style Stephen Hemminger
@ 2019-04-23 16:48 ` Stephen Hemminger
  2019-04-23 16:48   ` Stephen Hemminger
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 3/4] net/ring: use rte_calloc_socket Stephen Hemminger
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Don't hard code string length in two place; use sizeof() instead.
Ring name shoudl use RTE_RING_NAMESIZE.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 91e5f5f8f262..2e4ca3b16a1c 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -362,8 +362,8 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		.numa_node = numa_node,
 		.addr = &args,
 	};
-	char args_str[32] = { 0 };
-	char ring_name[32] = { 0 };
+	char args_str[32];
+	char ring_name[RTE_RING_NAMESIZE];
 	uint16_t port_id = RTE_MAX_ETHPORTS;
 	int ret;
 
@@ -381,8 +381,9 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		return -1;
 	}
 
-	snprintf(args_str, 32, "%s=%p", ETH_RING_INTERNAL_ARG, &args);
-	snprintf(ring_name, 32, "net_ring_%s", name);
+	snprintf(args_str, sizeof(args_str), "%s=%p",
+		 ETH_RING_INTERNAL_ARG, &args);
+	snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
 
 	ret = rte_vdev_init(ring_name, args_str);
 	if (ret) {
-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 2/4] net/ring: use sizeof() with snprintf
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 2/4] net/ring: use sizeof() with snprintf Stephen Hemminger
@ 2019-04-23 16:48   ` Stephen Hemminger
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Don't hard code string length in two place; use sizeof() instead.
Ring name shoudl use RTE_RING_NAMESIZE.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 91e5f5f8f262..2e4ca3b16a1c 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -362,8 +362,8 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		.numa_node = numa_node,
 		.addr = &args,
 	};
-	char args_str[32] = { 0 };
-	char ring_name[32] = { 0 };
+	char args_str[32];
+	char ring_name[RTE_RING_NAMESIZE];
 	uint16_t port_id = RTE_MAX_ETHPORTS;
 	int ret;
 
@@ -381,8 +381,9 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		return -1;
 	}
 
-	snprintf(args_str, 32, "%s=%p", ETH_RING_INTERNAL_ARG, &args);
-	snprintf(ring_name, 32, "net_ring_%s", name);
+	snprintf(args_str, sizeof(args_str), "%s=%p",
+		 ETH_RING_INTERNAL_ARG, &args);
+	snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
 
 	ret = rte_vdev_init(ring_name, args_str);
 	if (ret) {
-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 3/4] net/ring: use rte_calloc_socket
  2019-04-23 16:48 [dpdk-dev] [PATCH 0/4] net/ring: driver fixes Stephen Hemminger
                   ` (2 preceding siblings ...)
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 2/4] net/ring: use sizeof() with snprintf Stephen Hemminger
@ 2019-04-23 16:48 ` Stephen Hemminger
  2019-04-23 16:48   ` Stephen Hemminger
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 4/4] net/ring: check length of ring name Stephen Hemminger
  2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
  5 siblings, 1 reply; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Use rte_calloc_socket instead of computing size.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 2e4ca3b16a1c..0355f2b7c4d8 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -270,15 +270,15 @@ do_eth_dev_ring_create(const char *name,
 	PMD_LOG(INFO, "Creating rings-backed ethdev on numa socket %u",
 			numa_node);
 
-	rx_queues_local = rte_zmalloc_socket(name,
-			sizeof(void *) * nb_rx_queues, 0, numa_node);
+	rx_queues_local = rte_calloc_socket(name, nb_rx_queues,
+					    sizeof(void *), 0, numa_node);
 	if (rx_queues_local == NULL) {
 		rte_errno = ENOMEM;
 		goto error;
 	}
 
-	tx_queues_local = rte_zmalloc_socket(name,
-			sizeof(void *) * nb_tx_queues, 0, numa_node);
+	tx_queues_local = rte_calloc_socket(name, nb_tx_queues,
+					    sizeof(void *), 0, numa_node);
 	if (tx_queues_local == NULL) {
 		rte_errno = ENOMEM;
 		goto error;
-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 3/4] net/ring: use rte_calloc_socket
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 3/4] net/ring: use rte_calloc_socket Stephen Hemminger
@ 2019-04-23 16:48   ` Stephen Hemminger
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Use rte_calloc_socket instead of computing size.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 2e4ca3b16a1c..0355f2b7c4d8 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -270,15 +270,15 @@ do_eth_dev_ring_create(const char *name,
 	PMD_LOG(INFO, "Creating rings-backed ethdev on numa socket %u",
 			numa_node);
 
-	rx_queues_local = rte_zmalloc_socket(name,
-			sizeof(void *) * nb_rx_queues, 0, numa_node);
+	rx_queues_local = rte_calloc_socket(name, nb_rx_queues,
+					    sizeof(void *), 0, numa_node);
 	if (rx_queues_local == NULL) {
 		rte_errno = ENOMEM;
 		goto error;
 	}
 
-	tx_queues_local = rte_zmalloc_socket(name,
-			sizeof(void *) * nb_tx_queues, 0, numa_node);
+	tx_queues_local = rte_calloc_socket(name, nb_tx_queues,
+					    sizeof(void *), 0, numa_node);
 	if (tx_queues_local == NULL) {
 		rte_errno = ENOMEM;
 		goto error;
-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 4/4] net/ring: check length of ring name
  2019-04-23 16:48 [dpdk-dev] [PATCH 0/4] net/ring: driver fixes Stephen Hemminger
                   ` (3 preceding siblings ...)
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 3/4] net/ring: use rte_calloc_socket Stephen Hemminger
@ 2019-04-23 16:48 ` Stephen Hemminger
  2019-04-23 16:48   ` Stephen Hemminger
  2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
  5 siblings, 1 reply; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

The ring name is passed in as part of this drivers API, but it
doesn't check that the name is not truncated.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 0355f2b7c4d8..9125692f2c9b 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -383,7 +383,12 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 
 	snprintf(args_str, sizeof(args_str), "%s=%p",
 		 ETH_RING_INTERNAL_ARG, &args);
-	snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
+
+	ret = snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
+	if (ret >= (int)sizeof(ring_name)) {
+		rte_errno = ENAMETOOLONG;
+		return -1;
+	}
 
 	ret = rte_vdev_init(ring_name, args_str);
 	if (ret) {
@@ -417,7 +422,15 @@ eth_dev_ring_create(const char *name, const unsigned int numa_node,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
-		snprintf(rng_name, sizeof(rng_name), "ETH_RXTX%u_%s", i, name);
+		int cc;
+		
+		cc = snprintf(rng_name, sizeof(rng_name),
+			      "ETH_RXTX%u_%s", i, name);
+		if (cc >= (int)sizeof(rng_name)) {
+			rte_errno = ENAMETOOLONG;
+			return -1;
+		}
+		
 		rxtx[i] = (action == DEV_CREATE) ?
 				rte_ring_create(rng_name, 1024, numa_node,
 						RING_F_SP_ENQ|RING_F_SC_DEQ) :
-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH 4/4] net/ring: check length of ring name
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 4/4] net/ring: check length of ring name Stephen Hemminger
@ 2019-04-23 16:48   ` Stephen Hemminger
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:48 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

The ring name is passed in as part of this drivers API, but it
doesn't check that the name is not truncated.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 0355f2b7c4d8..9125692f2c9b 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -383,7 +383,12 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 
 	snprintf(args_str, sizeof(args_str), "%s=%p",
 		 ETH_RING_INTERNAL_ARG, &args);
-	snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
+
+	ret = snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
+	if (ret >= (int)sizeof(ring_name)) {
+		rte_errno = ENAMETOOLONG;
+		return -1;
+	}
 
 	ret = rte_vdev_init(ring_name, args_str);
 	if (ret) {
@@ -417,7 +422,15 @@ eth_dev_ring_create(const char *name, const unsigned int numa_node,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
-		snprintf(rng_name, sizeof(rng_name), "ETH_RXTX%u_%s", i, name);
+		int cc;
+		
+		cc = snprintf(rng_name, sizeof(rng_name),
+			      "ETH_RXTX%u_%s", i, name);
+		if (cc >= (int)sizeof(rng_name)) {
+			rte_errno = ENAMETOOLONG;
+			return -1;
+		}
+		
 		rxtx[i] = (action == DEV_CREATE) ?
 				rte_ring_create(rng_name, 1024, numa_node,
 						RING_F_SP_ENQ|RING_F_SC_DEQ) :
-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes
  2019-04-23 16:48 [dpdk-dev] [PATCH 0/4] net/ring: driver fixes Stephen Hemminger
                   ` (4 preceding siblings ...)
  2019-04-23 16:48 ` [dpdk-dev] [PATCH 4/4] net/ring: check length of ring name Stephen Hemminger
@ 2019-04-23 16:53 ` Stephen Hemminger
  2019-04-23 16:53   ` Stephen Hemminger
                     ` (5 more replies)
  5 siblings, 6 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Minor fixes and cleanups for the net/ring driver.

Stephen Hemminger (4):
  net/ring: fix coding style
  net/ring: use sizeof() with snprintf
  net/ring: use rte_calloc_socket
  net/ring: check length of ring name

 drivers/net/ring/rte_eth_ring.c | 90 ++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 35 deletions(-)

-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes
  2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
@ 2019-04-23 16:53   ` Stephen Hemminger
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 1/4] net/ring: fix coding style Stephen Hemminger
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Minor fixes and cleanups for the net/ring driver.

Stephen Hemminger (4):
  net/ring: fix coding style
  net/ring: use sizeof() with snprintf
  net/ring: use rte_calloc_socket
  net/ring: check length of ring name

 drivers/net/ring/rte_eth_ring.c | 90 ++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 35 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 1/4] net/ring: fix coding style
  2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
  2019-04-23 16:53   ` Stephen Hemminger
@ 2019-04-23 16:53   ` Stephen Hemminger
  2019-04-23 16:53     ` Stephen Hemminger
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 2/4] net/ring: use sizeof() with snprintf Stephen Hemminger
                     ` (3 subsequent siblings)
  5 siblings, 1 reply; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Whitespace fixes to bring inline with current DPDK style.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
v2 - fix signoff line

 drivers/net/ring/rte_eth_ring.c | 58 ++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 26 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 115a882b507c..91e5f5f8f262 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -45,8 +45,8 @@ struct ring_queue {
 };
 
 struct pmd_internals {
-	unsigned max_rx_queues;
-	unsigned max_tx_queues;
+	unsigned int max_rx_queues;
+	unsigned int max_tx_queues;
 
 	struct ring_queue rx_ring_queues[RTE_PMD_RING_MAX_RX_RINGS];
 	struct ring_queue tx_ring_queues[RTE_PMD_RING_MAX_TX_RINGS];
@@ -55,12 +55,11 @@ struct pmd_internals {
 	enum dev_action action;
 };
 
-
 static struct rte_eth_link pmd_link = {
-		.link_speed = ETH_SPEED_NUM_10G,
-		.link_duplex = ETH_LINK_FULL_DUPLEX,
-		.link_status = ETH_LINK_DOWN,
-		.link_autoneg = ETH_LINK_FIXED,
+	.link_speed = ETH_SPEED_NUM_10G,
+	.link_duplex = ETH_LINK_FULL_DUPLEX,
+	.link_status = ETH_LINK_DOWN,
+	.link_autoneg = ETH_LINK_FIXED,
 };
 
 static int eth_ring_logtype;
@@ -138,6 +137,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
 				    struct rte_mempool *mb_pool __rte_unused)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev->data->rx_queues[rx_queue_id] = &internals->rx_ring_queues[rx_queue_id];
 	return 0;
 }
@@ -149,6 +149,7 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 				    const struct rte_eth_txconf *tx_conf __rte_unused)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev->data->tx_queues[tx_queue_id] = &internals->tx_ring_queues[tx_queue_id];
 	return 0;
 }
@@ -156,9 +157,10 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 
 static void
 eth_dev_info(struct rte_eth_dev *dev,
-		struct rte_eth_dev_info *dev_info)
+	     struct rte_eth_dev_info *dev_info)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev_info->max_mac_addrs = 1;
 	dev_info->max_rx_pktlen = (uint32_t)-1;
 	dev_info->max_rx_queues = (uint16_t)internals->max_rx_queues;
@@ -169,7 +171,7 @@ eth_dev_info(struct rte_eth_dev *dev,
 static int
 eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 {
-	unsigned i;
+	unsigned int i;
 	unsigned long rx_total = 0, tx_total = 0, tx_err_total = 0;
 	const struct pmd_internals *internal = dev->data->dev_private;
 
@@ -197,8 +199,9 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 static void
 eth_stats_reset(struct rte_eth_dev *dev)
 {
-	unsigned i;
+	unsigned int i;
 	struct pmd_internals *internal = dev->data->dev_private;
+
 	for (i = 0; i < dev->data->nb_rx_queues; i++)
 		internal->rx_ring_queues[i].rx_pkts.cnt = 0;
 	for (i = 0; i < dev->data->nb_tx_queues; i++) {
@@ -250,8 +253,10 @@ static struct rte_vdev_driver pmd_ring_drv;
 
 static int
 do_eth_dev_ring_create(const char *name,
-		struct rte_ring * const rx_queues[], const unsigned nb_rx_queues,
-		struct rte_ring *const tx_queues[], const unsigned nb_tx_queues,
+		struct rte_ring * const rx_queues[],
+		const unsigned int nb_rx_queues,
+		struct rte_ring *const tx_queues[],
+		const unsigned int nb_tx_queues,
 		const unsigned int numa_node, enum dev_action action,
 		struct rte_eth_dev **eth_dev_p)
 {
@@ -260,7 +265,7 @@ do_eth_dev_ring_create(const char *name,
 	struct rte_eth_dev *eth_dev = NULL;
 	void **rx_queues_local = NULL;
 	void **tx_queues_local = NULL;
-	unsigned i;
+	unsigned int i;
 
 	PMD_LOG(INFO, "Creating rings-backed ethdev on numa socket %u",
 			numa_node);
@@ -344,10 +349,10 @@ do_eth_dev_ring_create(const char *name,
 
 int
 rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
-		const unsigned nb_rx_queues,
+		const unsigned int nb_rx_queues,
 		struct rte_ring *const tx_queues[],
-		const unsigned nb_tx_queues,
-		const unsigned numa_node)
+		const unsigned int nb_tx_queues,
+		const unsigned int numa_node)
 {
 	struct ring_internal_args args = {
 		.rx_queues = rx_queues,
@@ -398,16 +403,16 @@ rte_eth_from_ring(struct rte_ring *r)
 }
 
 static int
-eth_dev_ring_create(const char *name, const unsigned numa_node,
+eth_dev_ring_create(const char *name, const unsigned int numa_node,
 		enum dev_action action, struct rte_eth_dev **eth_dev)
 {
 	/* rx and tx are so-called from point of view of first port.
 	 * They are inverted from the point of view of second port
 	 */
 	struct rte_ring *rxtx[RTE_PMD_RING_MAX_RX_RINGS];
-	unsigned i;
+	unsigned int i;
 	char rng_name[RTE_RING_NAMESIZE];
-	unsigned num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
+	unsigned int num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
@@ -429,17 +434,18 @@ eth_dev_ring_create(const char *name, const unsigned numa_node,
 
 struct node_action_pair {
 	char name[PATH_MAX];
-	unsigned node;
+	unsigned int node;
 	enum dev_action action;
 };
 
 struct node_action_list {
-	unsigned total;
-	unsigned count;
+	unsigned int total;
+	unsigned int count;
 	struct node_action_pair *list;
 };
 
-static int parse_kvlist (const char *key __rte_unused, const char *value, void *data)
+static int parse_kvlist(const char *key __rte_unused,
+			const char *value, void *data)
 {
 	struct node_action_list *info = data;
 	int ret;
@@ -553,8 +559,8 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev)
 		kvlist = rte_kvargs_parse(params, valid_arguments);
 
 		if (!kvlist) {
-			PMD_LOG(INFO, "Ignoring unsupported parameters when creating"
-					" rings-backed ethernet device");
+			PMD_LOG(INFO,
+				"Ignoring unsupported parameters when creatingrings-backed ethernet device");
 			ret = eth_dev_ring_create(name, rte_socket_id(),
 						  DEV_CREATE, &eth_dev);
 			if (ret == -1) {
@@ -598,7 +604,7 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev)
 				goto out_free;
 
 			info->total = ret;
-			info->list = (struct node_action_pair*)(info + 1);
+			info->list = (struct node_action_pair *)(info + 1);
 
 			ret = rte_kvargs_process(kvlist, ETH_RING_NUMA_NODE_ACTION_ARG,
 						 parse_kvlist, info);
-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 1/4] net/ring: fix coding style
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 1/4] net/ring: fix coding style Stephen Hemminger
@ 2019-04-23 16:53     ` Stephen Hemminger
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Whitespace fixes to bring inline with current DPDK style.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
v2 - fix signoff line

 drivers/net/ring/rte_eth_ring.c | 58 ++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 26 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 115a882b507c..91e5f5f8f262 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -45,8 +45,8 @@ struct ring_queue {
 };
 
 struct pmd_internals {
-	unsigned max_rx_queues;
-	unsigned max_tx_queues;
+	unsigned int max_rx_queues;
+	unsigned int max_tx_queues;
 
 	struct ring_queue rx_ring_queues[RTE_PMD_RING_MAX_RX_RINGS];
 	struct ring_queue tx_ring_queues[RTE_PMD_RING_MAX_TX_RINGS];
@@ -55,12 +55,11 @@ struct pmd_internals {
 	enum dev_action action;
 };
 
-
 static struct rte_eth_link pmd_link = {
-		.link_speed = ETH_SPEED_NUM_10G,
-		.link_duplex = ETH_LINK_FULL_DUPLEX,
-		.link_status = ETH_LINK_DOWN,
-		.link_autoneg = ETH_LINK_FIXED,
+	.link_speed = ETH_SPEED_NUM_10G,
+	.link_duplex = ETH_LINK_FULL_DUPLEX,
+	.link_status = ETH_LINK_DOWN,
+	.link_autoneg = ETH_LINK_FIXED,
 };
 
 static int eth_ring_logtype;
@@ -138,6 +137,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
 				    struct rte_mempool *mb_pool __rte_unused)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev->data->rx_queues[rx_queue_id] = &internals->rx_ring_queues[rx_queue_id];
 	return 0;
 }
@@ -149,6 +149,7 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 				    const struct rte_eth_txconf *tx_conf __rte_unused)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev->data->tx_queues[tx_queue_id] = &internals->tx_ring_queues[tx_queue_id];
 	return 0;
 }
@@ -156,9 +157,10 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 
 static void
 eth_dev_info(struct rte_eth_dev *dev,
-		struct rte_eth_dev_info *dev_info)
+	     struct rte_eth_dev_info *dev_info)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
+
 	dev_info->max_mac_addrs = 1;
 	dev_info->max_rx_pktlen = (uint32_t)-1;
 	dev_info->max_rx_queues = (uint16_t)internals->max_rx_queues;
@@ -169,7 +171,7 @@ eth_dev_info(struct rte_eth_dev *dev,
 static int
 eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 {
-	unsigned i;
+	unsigned int i;
 	unsigned long rx_total = 0, tx_total = 0, tx_err_total = 0;
 	const struct pmd_internals *internal = dev->data->dev_private;
 
@@ -197,8 +199,9 @@ eth_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 static void
 eth_stats_reset(struct rte_eth_dev *dev)
 {
-	unsigned i;
+	unsigned int i;
 	struct pmd_internals *internal = dev->data->dev_private;
+
 	for (i = 0; i < dev->data->nb_rx_queues; i++)
 		internal->rx_ring_queues[i].rx_pkts.cnt = 0;
 	for (i = 0; i < dev->data->nb_tx_queues; i++) {
@@ -250,8 +253,10 @@ static struct rte_vdev_driver pmd_ring_drv;
 
 static int
 do_eth_dev_ring_create(const char *name,
-		struct rte_ring * const rx_queues[], const unsigned nb_rx_queues,
-		struct rte_ring *const tx_queues[], const unsigned nb_tx_queues,
+		struct rte_ring * const rx_queues[],
+		const unsigned int nb_rx_queues,
+		struct rte_ring *const tx_queues[],
+		const unsigned int nb_tx_queues,
 		const unsigned int numa_node, enum dev_action action,
 		struct rte_eth_dev **eth_dev_p)
 {
@@ -260,7 +265,7 @@ do_eth_dev_ring_create(const char *name,
 	struct rte_eth_dev *eth_dev = NULL;
 	void **rx_queues_local = NULL;
 	void **tx_queues_local = NULL;
-	unsigned i;
+	unsigned int i;
 
 	PMD_LOG(INFO, "Creating rings-backed ethdev on numa socket %u",
 			numa_node);
@@ -344,10 +349,10 @@ do_eth_dev_ring_create(const char *name,
 
 int
 rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
-		const unsigned nb_rx_queues,
+		const unsigned int nb_rx_queues,
 		struct rte_ring *const tx_queues[],
-		const unsigned nb_tx_queues,
-		const unsigned numa_node)
+		const unsigned int nb_tx_queues,
+		const unsigned int numa_node)
 {
 	struct ring_internal_args args = {
 		.rx_queues = rx_queues,
@@ -398,16 +403,16 @@ rte_eth_from_ring(struct rte_ring *r)
 }
 
 static int
-eth_dev_ring_create(const char *name, const unsigned numa_node,
+eth_dev_ring_create(const char *name, const unsigned int numa_node,
 		enum dev_action action, struct rte_eth_dev **eth_dev)
 {
 	/* rx and tx are so-called from point of view of first port.
 	 * They are inverted from the point of view of second port
 	 */
 	struct rte_ring *rxtx[RTE_PMD_RING_MAX_RX_RINGS];
-	unsigned i;
+	unsigned int i;
 	char rng_name[RTE_RING_NAMESIZE];
-	unsigned num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
+	unsigned int num_rings = RTE_MIN(RTE_PMD_RING_MAX_RX_RINGS,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
@@ -429,17 +434,18 @@ eth_dev_ring_create(const char *name, const unsigned numa_node,
 
 struct node_action_pair {
 	char name[PATH_MAX];
-	unsigned node;
+	unsigned int node;
 	enum dev_action action;
 };
 
 struct node_action_list {
-	unsigned total;
-	unsigned count;
+	unsigned int total;
+	unsigned int count;
 	struct node_action_pair *list;
 };
 
-static int parse_kvlist (const char *key __rte_unused, const char *value, void *data)
+static int parse_kvlist(const char *key __rte_unused,
+			const char *value, void *data)
 {
 	struct node_action_list *info = data;
 	int ret;
@@ -553,8 +559,8 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev)
 		kvlist = rte_kvargs_parse(params, valid_arguments);
 
 		if (!kvlist) {
-			PMD_LOG(INFO, "Ignoring unsupported parameters when creating"
-					" rings-backed ethernet device");
+			PMD_LOG(INFO,
+				"Ignoring unsupported parameters when creatingrings-backed ethernet device");
 			ret = eth_dev_ring_create(name, rte_socket_id(),
 						  DEV_CREATE, &eth_dev);
 			if (ret == -1) {
@@ -598,7 +604,7 @@ rte_pmd_ring_probe(struct rte_vdev_device *dev)
 				goto out_free;
 
 			info->total = ret;
-			info->list = (struct node_action_pair*)(info + 1);
+			info->list = (struct node_action_pair *)(info + 1);
 
 			ret = rte_kvargs_process(kvlist, ETH_RING_NUMA_NODE_ACTION_ARG,
 						 parse_kvlist, info);
-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 2/4] net/ring: use sizeof() with snprintf
  2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
  2019-04-23 16:53   ` Stephen Hemminger
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 1/4] net/ring: fix coding style Stephen Hemminger
@ 2019-04-23 16:53   ` Stephen Hemminger
  2019-04-23 16:53     ` Stephen Hemminger
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 3/4] net/ring: use rte_calloc_socket Stephen Hemminger
                     ` (2 subsequent siblings)
  5 siblings, 1 reply; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Don't hard code string length in two place; use sizeof() instead.
Ring name shoudl use RTE_RING_NAMESIZE.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 91e5f5f8f262..2e4ca3b16a1c 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -362,8 +362,8 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		.numa_node = numa_node,
 		.addr = &args,
 	};
-	char args_str[32] = { 0 };
-	char ring_name[32] = { 0 };
+	char args_str[32];
+	char ring_name[RTE_RING_NAMESIZE];
 	uint16_t port_id = RTE_MAX_ETHPORTS;
 	int ret;
 
@@ -381,8 +381,9 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		return -1;
 	}
 
-	snprintf(args_str, 32, "%s=%p", ETH_RING_INTERNAL_ARG, &args);
-	snprintf(ring_name, 32, "net_ring_%s", name);
+	snprintf(args_str, sizeof(args_str), "%s=%p",
+		 ETH_RING_INTERNAL_ARG, &args);
+	snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
 
 	ret = rte_vdev_init(ring_name, args_str);
 	if (ret) {
-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 2/4] net/ring: use sizeof() with snprintf
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 2/4] net/ring: use sizeof() with snprintf Stephen Hemminger
@ 2019-04-23 16:53     ` Stephen Hemminger
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Don't hard code string length in two place; use sizeof() instead.
Ring name shoudl use RTE_RING_NAMESIZE.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 91e5f5f8f262..2e4ca3b16a1c 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -362,8 +362,8 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		.numa_node = numa_node,
 		.addr = &args,
 	};
-	char args_str[32] = { 0 };
-	char ring_name[32] = { 0 };
+	char args_str[32];
+	char ring_name[RTE_RING_NAMESIZE];
 	uint16_t port_id = RTE_MAX_ETHPORTS;
 	int ret;
 
@@ -381,8 +381,9 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 		return -1;
 	}
 
-	snprintf(args_str, 32, "%s=%p", ETH_RING_INTERNAL_ARG, &args);
-	snprintf(ring_name, 32, "net_ring_%s", name);
+	snprintf(args_str, sizeof(args_str), "%s=%p",
+		 ETH_RING_INTERNAL_ARG, &args);
+	snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
 
 	ret = rte_vdev_init(ring_name, args_str);
 	if (ret) {
-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 3/4] net/ring: use rte_calloc_socket
  2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
                     ` (2 preceding siblings ...)
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 2/4] net/ring: use sizeof() with snprintf Stephen Hemminger
@ 2019-04-23 16:53   ` Stephen Hemminger
  2019-04-23 16:53     ` Stephen Hemminger
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 4/4] net/ring: check length of ring name Stephen Hemminger
  2019-04-24 16:47   ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Ferruh Yigit
  5 siblings, 1 reply; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Use rte_calloc_socket instead of computing size.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 2e4ca3b16a1c..0355f2b7c4d8 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -270,15 +270,15 @@ do_eth_dev_ring_create(const char *name,
 	PMD_LOG(INFO, "Creating rings-backed ethdev on numa socket %u",
 			numa_node);
 
-	rx_queues_local = rte_zmalloc_socket(name,
-			sizeof(void *) * nb_rx_queues, 0, numa_node);
+	rx_queues_local = rte_calloc_socket(name, nb_rx_queues,
+					    sizeof(void *), 0, numa_node);
 	if (rx_queues_local == NULL) {
 		rte_errno = ENOMEM;
 		goto error;
 	}
 
-	tx_queues_local = rte_zmalloc_socket(name,
-			sizeof(void *) * nb_tx_queues, 0, numa_node);
+	tx_queues_local = rte_calloc_socket(name, nb_tx_queues,
+					    sizeof(void *), 0, numa_node);
 	if (tx_queues_local == NULL) {
 		rte_errno = ENOMEM;
 		goto error;
-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 3/4] net/ring: use rte_calloc_socket
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 3/4] net/ring: use rte_calloc_socket Stephen Hemminger
@ 2019-04-23 16:53     ` Stephen Hemminger
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

Use rte_calloc_socket instead of computing size.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ring/rte_eth_ring.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 2e4ca3b16a1c..0355f2b7c4d8 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -270,15 +270,15 @@ do_eth_dev_ring_create(const char *name,
 	PMD_LOG(INFO, "Creating rings-backed ethdev on numa socket %u",
 			numa_node);
 
-	rx_queues_local = rte_zmalloc_socket(name,
-			sizeof(void *) * nb_rx_queues, 0, numa_node);
+	rx_queues_local = rte_calloc_socket(name, nb_rx_queues,
+					    sizeof(void *), 0, numa_node);
 	if (rx_queues_local == NULL) {
 		rte_errno = ENOMEM;
 		goto error;
 	}
 
-	tx_queues_local = rte_zmalloc_socket(name,
-			sizeof(void *) * nb_tx_queues, 0, numa_node);
+	tx_queues_local = rte_calloc_socket(name, nb_tx_queues,
+					    sizeof(void *), 0, numa_node);
 	if (tx_queues_local == NULL) {
 		rte_errno = ENOMEM;
 		goto error;
-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 4/4] net/ring: check length of ring name
  2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
                     ` (3 preceding siblings ...)
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 3/4] net/ring: use rte_calloc_socket Stephen Hemminger
@ 2019-04-23 16:53   ` Stephen Hemminger
  2019-04-23 16:53     ` Stephen Hemminger
  2019-04-24 16:47   ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Ferruh Yigit
  5 siblings, 1 reply; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

The ring name is passed in as part of this drivers API, but it
doesn't check that the name is not truncated.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
v2 - fix whitespace creep

 drivers/net/ring/rte_eth_ring.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 0355f2b7c4d8..979993fd3e11 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -383,7 +383,12 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 
 	snprintf(args_str, sizeof(args_str), "%s=%p",
 		 ETH_RING_INTERNAL_ARG, &args);
-	snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
+
+	ret = snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
+	if (ret >= (int)sizeof(ring_name)) {
+		rte_errno = ENAMETOOLONG;
+		return -1;
+	}
 
 	ret = rte_vdev_init(ring_name, args_str);
 	if (ret) {
@@ -417,7 +422,15 @@ eth_dev_ring_create(const char *name, const unsigned int numa_node,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
-		snprintf(rng_name, sizeof(rng_name), "ETH_RXTX%u_%s", i, name);
+		int cc;
+
+		cc = snprintf(rng_name, sizeof(rng_name),
+			      "ETH_RXTX%u_%s", i, name);
+		if (cc >= (int)sizeof(rng_name)) {
+			rte_errno = ENAMETOOLONG;
+			return -1;
+		}
+
 		rxtx[i] = (action == DEV_CREATE) ?
 				rte_ring_create(rng_name, 1024, numa_node,
 						RING_F_SP_ENQ|RING_F_SC_DEQ) :
-- 
2.20.1

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [dpdk-dev] [PATCH v2 4/4] net/ring: check length of ring name
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 4/4] net/ring: check length of ring name Stephen Hemminger
@ 2019-04-23 16:53     ` Stephen Hemminger
  0 siblings, 0 replies; 22+ messages in thread
From: Stephen Hemminger @ 2019-04-23 16:53 UTC (permalink / raw)
  To: bruce.richardson; +Cc: dev, Stephen Hemminger

The ring name is passed in as part of this drivers API, but it
doesn't check that the name is not truncated.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
v2 - fix whitespace creep

 drivers/net/ring/rte_eth_ring.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
index 0355f2b7c4d8..979993fd3e11 100644
--- a/drivers/net/ring/rte_eth_ring.c
+++ b/drivers/net/ring/rte_eth_ring.c
@@ -383,7 +383,12 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[],
 
 	snprintf(args_str, sizeof(args_str), "%s=%p",
 		 ETH_RING_INTERNAL_ARG, &args);
-	snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
+
+	ret = snprintf(ring_name, sizeof(ring_name), "net_ring_%s", name);
+	if (ret >= (int)sizeof(ring_name)) {
+		rte_errno = ENAMETOOLONG;
+		return -1;
+	}
 
 	ret = rte_vdev_init(ring_name, args_str);
 	if (ret) {
@@ -417,7 +422,15 @@ eth_dev_ring_create(const char *name, const unsigned int numa_node,
 			RTE_PMD_RING_MAX_TX_RINGS);
 
 	for (i = 0; i < num_rings; i++) {
-		snprintf(rng_name, sizeof(rng_name), "ETH_RXTX%u_%s", i, name);
+		int cc;
+
+		cc = snprintf(rng_name, sizeof(rng_name),
+			      "ETH_RXTX%u_%s", i, name);
+		if (cc >= (int)sizeof(rng_name)) {
+			rte_errno = ENAMETOOLONG;
+			return -1;
+		}
+
 		rxtx[i] = (action == DEV_CREATE) ?
 				rte_ring_create(rng_name, 1024, numa_node,
 						RING_F_SP_ENQ|RING_F_SC_DEQ) :
-- 
2.20.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes
  2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
                     ` (4 preceding siblings ...)
  2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 4/4] net/ring: check length of ring name Stephen Hemminger
@ 2019-04-24 16:47   ` Ferruh Yigit
  2019-04-24 16:47     ` Ferruh Yigit
  5 siblings, 1 reply; 22+ messages in thread
From: Ferruh Yigit @ 2019-04-24 16:47 UTC (permalink / raw)
  To: Stephen Hemminger, bruce.richardson; +Cc: dev

On 4/23/2019 5:53 PM, Stephen Hemminger wrote:
> Minor fixes and cleanups for the net/ring driver.
> 
> Stephen Hemminger (4):
>   net/ring: fix coding style
>   net/ring: use sizeof() with snprintf
>   net/ring: use rte_calloc_socket
>   net/ring: check length of ring name

For series,
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

Series applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes
  2019-04-24 16:47   ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Ferruh Yigit
@ 2019-04-24 16:47     ` Ferruh Yigit
  0 siblings, 0 replies; 22+ messages in thread
From: Ferruh Yigit @ 2019-04-24 16:47 UTC (permalink / raw)
  To: Stephen Hemminger, bruce.richardson; +Cc: dev

On 4/23/2019 5:53 PM, Stephen Hemminger wrote:
> Minor fixes and cleanups for the net/ring driver.
> 
> Stephen Hemminger (4):
>   net/ring: fix coding style
>   net/ring: use sizeof() with snprintf
>   net/ring: use rte_calloc_socket
>   net/ring: check length of ring name

For series,
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

Series applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2019-04-24 16:47 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-23 16:48 [dpdk-dev] [PATCH 0/4] net/ring: driver fixes Stephen Hemminger
2019-04-23 16:48 ` Stephen Hemminger
2019-04-23 16:48 ` [dpdk-dev] [PATCH 1/4] net/ring: fix coding style Stephen Hemminger
2019-04-23 16:48   ` Stephen Hemminger
2019-04-23 16:48 ` [dpdk-dev] [PATCH 2/4] net/ring: use sizeof() with snprintf Stephen Hemminger
2019-04-23 16:48   ` Stephen Hemminger
2019-04-23 16:48 ` [dpdk-dev] [PATCH 3/4] net/ring: use rte_calloc_socket Stephen Hemminger
2019-04-23 16:48   ` Stephen Hemminger
2019-04-23 16:48 ` [dpdk-dev] [PATCH 4/4] net/ring: check length of ring name Stephen Hemminger
2019-04-23 16:48   ` Stephen Hemminger
2019-04-23 16:53 ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Stephen Hemminger
2019-04-23 16:53   ` Stephen Hemminger
2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 1/4] net/ring: fix coding style Stephen Hemminger
2019-04-23 16:53     ` Stephen Hemminger
2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 2/4] net/ring: use sizeof() with snprintf Stephen Hemminger
2019-04-23 16:53     ` Stephen Hemminger
2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 3/4] net/ring: use rte_calloc_socket Stephen Hemminger
2019-04-23 16:53     ` Stephen Hemminger
2019-04-23 16:53   ` [dpdk-dev] [PATCH v2 4/4] net/ring: check length of ring name Stephen Hemminger
2019-04-23 16:53     ` Stephen Hemminger
2019-04-24 16:47   ` [dpdk-dev] [PATCH v2 0/4] net/ring: driver fixes Ferruh Yigit
2019-04-24 16:47     ` Ferruh Yigit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).