All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
To: dev@dpdk.org
Cc: "Morten Brørup" <mb@smartsharesystems.com>,
	"Akhil Goyal" <gakhil@marvell.com>,
	"Aman Singh" <aman.deep.singh@intel.com>,
	"Anatoly Burakov" <anatoly.burakov@intel.com>,
	"Andrew Rybchenko" <andrew.rybchenko@oktetlabs.ru>,
	"Bruce Richardson" <bruce.richardson@intel.com>,
	"Chengwen Feng" <fengchengwen@huawei.com>,
	"Dariusz Sosnowski" <dsosnowski@nvidia.com>,
	"Dmitry Kozlyuk" <dmitry.kozliuk@gmail.com>,
	"Fan Zhang" <fanzhang.oss@gmail.com>,
	"Ferruh Yigit" <ferruh.yigit@amd.com>,
	"Harman Kalra" <hkalra@marvell.com>,
	"Harry van Haaren" <harry.van.haaren@intel.com>,
	"Honnappa Nagarahalli" <honnappa.nagarahalli@arm.com>,
	"Jiayu Hu" <hujiayu.hu@foxmail.com>,
	"Jingjing Wu" <jingjing.wu@intel.com>,
	"Kevin Laatz" <kevin.laatz@intel.com>,
	"Konstantin Ananyev" <konstantin.v.ananyev@yandex.ru>,
	"Matan Azrad" <matan@nvidia.com>, "Ori Kam" <orika@nvidia.com>,
	"Pallavi Kadam" <pallavi.kadam@intel.com>,
	"Reshma Pattan" <reshma.pattan@intel.com>,
	"Sameh Gobriel" <sameh.gobriel@intel.com>,
	"Suanming Mou" <suanmingm@nvidia.com>,
	"Thomas Monjalon" <thomas@monjalon.net>,
	"Tyler Retzlaff" <roretzla@linux.microsoft.com>,
	"Viacheslav Ovsiienko" <viacheslavo@nvidia.com>,
	"Vladimir Medvedkin" <vladimir.medvedkin@intel.com>,
	"Volodymyr Fialko" <vfialko@marvell.com>,
	"Yipeng Wang" <yipeng1.wang@intel.com>
Subject: [PATCH v3 17/19] common/mlx5: remove use of VLAs for Windows built code
Date: Mon,  6 May 2024 11:18:49 -0700	[thread overview]
Message-ID: <1715019531-22796-18-git-send-email-roretzla@linux.microsoft.com> (raw)
In-Reply-To: <1715019531-22796-1-git-send-email-roretzla@linux.microsoft.com>

MSVC does not support VLAs, replace VLAs with standard C arrays
or alloca(). alloca() is available for all toolchain/platform
combinations officially supported by DPDK.

Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
 drivers/common/mlx5/mlx5_common.h    | 4 ++--
 drivers/common/mlx5/mlx5_devx_cmds.c | 7 +++----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/common/mlx5/mlx5_common.h b/drivers/common/mlx5/mlx5_common.h
index 9c80277..76eba1c 100644
--- a/drivers/common/mlx5/mlx5_common.h
+++ b/drivers/common/mlx5/mlx5_common.h
@@ -112,10 +112,10 @@
 /* Allocate a buffer on the stack and fill it with a printf format string. */
 #define MKSTR(name, ...) \
 	int mkstr_size_##name = snprintf(NULL, 0, "" __VA_ARGS__); \
-	char name[mkstr_size_##name + 1]; \
+	char *name = alloca(mkstr_size_##name + 1); \
 	\
 	memset(name, 0, mkstr_size_##name + 1); \
-	snprintf(name, sizeof(name), "" __VA_ARGS__)
+	snprintf(name, mkstr_size_##name + 1, "" __VA_ARGS__)
 
 enum {
 	PCI_VENDOR_ID_MELLANOX = 0x15b3,
diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index 9b7abab..bac272f 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -284,10 +284,9 @@ struct mlx5_devx_obj *
 				 void *cmd_comp,
 				 uint64_t async_id)
 {
-	int out_len = MLX5_ST_SZ_BYTES(query_flow_counter_out) +
-			MLX5_ST_SZ_BYTES(traffic_counter);
-	uint32_t out[out_len];
+	uint32_t out[MLX5_ST_SZ_BYTES(query_flow_counter_out) + MLX5_ST_SZ_BYTES(traffic_counter)];
 	uint32_t in[MLX5_ST_SZ_DW(query_flow_counter_in)] = {0};
+	const int out_len = RTE_DIM(out);
 	void *stats;
 	int rc;
 
@@ -346,7 +345,7 @@ struct mlx5_devx_obj *
 	int klm_num = attr->klm_num;
 	int in_size_dw = MLX5_ST_SZ_DW(create_mkey_in) +
 		     (klm_num ? RTE_ALIGN(klm_num, 4) : 0) * MLX5_ST_SZ_DW(klm);
-	uint32_t in[in_size_dw];
+	uint32_t *in = alloca(sizeof(uint32_t) * in_size_dw);
 	uint32_t out[MLX5_ST_SZ_DW(create_mkey_out)] = {0};
 	void *mkc;
 	struct mlx5_devx_obj *mkey = mlx5_malloc(MLX5_MEM_ZERO, sizeof(*mkey),
-- 
1.8.3.1


  parent reply	other threads:[~2024-05-06 18:20 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-17 23:41 [PATCH 00/16] remove use of VLAs for Windows built code Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 01/16] eal: include header required for alloca Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 02/16] hash: remove use of VLAs for Windows built code Tyler Retzlaff
2024-04-18  6:45   ` Morten Brørup
2024-04-17 23:41 ` [PATCH 03/16] ethdev: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 04/16] gro: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 05/16] latencystats: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 06/16] lpm: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 07/16] rcu: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 08/16] app/testpmd: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 09/16] test: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 10/16] common/idpf: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 11/16] net/i40e: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 12/16] net/ice: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 13/16] net/ixgbe: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 14/16] common/mlx5: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 15/16] net/mlx5: " Tyler Retzlaff
2024-04-17 23:41 ` [PATCH 16/16] build: enable vla warnings on " Tyler Retzlaff
2024-04-18  6:48   ` Morten Brørup
2024-04-18 15:12     ` Tyler Retzlaff
2024-04-18 15:23       ` Bruce Richardson
2024-04-18 19:22         ` Morten Brørup
2024-04-18  6:49 ` [PATCH 00/16] remove use of VLAs for " Morten Brørup
2024-04-18 12:11 ` Konstantin Ananyev
2024-04-18 15:15   ` Tyler Retzlaff
2024-04-18 15:35     ` Konstantin Ananyev
2024-04-18 20:02 ` [PATCH v2 00/19] remove use of VLAs for Windows Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 01/19] eal: include header required for alloca Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 02/19] eal/linux: remove use of VLAs Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 03/19] eal/common: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 04/19] ethdev: remove use of VLAs for Windows built code Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 05/19] hash: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 06/19] hash/thash: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 07/19] rcu: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 08/19] gro: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 09/19] latencystats: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 10/19] lpm: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 11/19] app/testpmd: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 12/19] test: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 13/19] common/idpf: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 14/19] net/i40e: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 15/19] net/ice: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 16/19] net/ixgbe: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 17/19] common/mlx5: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 18/19] net/mlx5: " Tyler Retzlaff
2024-04-18 20:02   ` [PATCH v2 19/19] build: enable vla warnings on " Tyler Retzlaff
2024-05-06 18:18 ` [PATCH v3 00/19] remove use of VLAs for Windows Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 01/19] eal: include header required for alloca Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 02/19] eal/linux: remove use of VLAs Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 03/19] eal/common: " Tyler Retzlaff
2024-05-07  0:42     ` Stephen Hemminger
2024-05-06 18:18   ` [PATCH v3 04/19] ethdev: remove use of VLAs for Windows built code Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 05/19] hash: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 06/19] hash/thash: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 07/19] rcu: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 08/19] gro: " Tyler Retzlaff
2024-05-07  0:47     ` Stephen Hemminger
2024-05-06 18:18   ` [PATCH v3 09/19] latencystats: " Tyler Retzlaff
2024-05-07  0:47     ` Stephen Hemminger
2024-05-06 18:18   ` [PATCH v3 10/19] lpm: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 11/19] app/testpmd: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 12/19] test: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 13/19] common/idpf: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 14/19] net/i40e: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 15/19] net/ice: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 16/19] net/ixgbe: " Tyler Retzlaff
2024-05-06 18:18   ` Tyler Retzlaff [this message]
2024-05-06 18:18   ` [PATCH v3 18/19] net/mlx5: " Tyler Retzlaff
2024-05-06 18:18   ` [PATCH v3 19/19] build: enable vla warnings on " Tyler Retzlaff
2024-05-07  2:53   ` [PATCH 1/2] lpm: remove unnecessary temporary VLA Stephen Hemminger
2024-05-07  2:53     ` [PATCH 2/2] latencystats: replace use of VLA Stephen Hemminger
2024-05-07  7:51     ` [PATCH 1/2] lpm: remove unnecessary temporary VLA Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1715019531-22796-18-git-send-email-roretzla@linux.microsoft.com \
    --to=roretzla@linux.microsoft.com \
    --cc=aman.deep.singh@intel.com \
    --cc=anatoly.burakov@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=dmitry.kozliuk@gmail.com \
    --cc=dsosnowski@nvidia.com \
    --cc=fanzhang.oss@gmail.com \
    --cc=fengchengwen@huawei.com \
    --cc=ferruh.yigit@amd.com \
    --cc=gakhil@marvell.com \
    --cc=harry.van.haaren@intel.com \
    --cc=hkalra@marvell.com \
    --cc=honnappa.nagarahalli@arm.com \
    --cc=hujiayu.hu@foxmail.com \
    --cc=jingjing.wu@intel.com \
    --cc=kevin.laatz@intel.com \
    --cc=konstantin.v.ananyev@yandex.ru \
    --cc=matan@nvidia.com \
    --cc=mb@smartsharesystems.com \
    --cc=orika@nvidia.com \
    --cc=pallavi.kadam@intel.com \
    --cc=reshma.pattan@intel.com \
    --cc=sameh.gobriel@intel.com \
    --cc=suanmingm@nvidia.com \
    --cc=thomas@monjalon.net \
    --cc=vfialko@marvell.com \
    --cc=viacheslavo@nvidia.com \
    --cc=vladimir.medvedkin@intel.com \
    --cc=yipeng1.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.