[PATCH v13 17/21] net/mlx5: remove use of VLAs for Windows built code
Andre Muezerie
andremue at linux.microsoft.com
Sun Jan 5 03:46:54 CET 2025
From: Tyler Retzlaff <roretzla at 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 at linux.microsoft.com>
---
drivers/net/mlx5/mlx5.c | 5 ++---
drivers/net/mlx5/mlx5_flow.c | 6 +++---
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 6e4473e2f4..979e54686b 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -1598,14 +1598,13 @@ void
mlx5_rt_timestamp_config(struct mlx5_dev_ctx_shared *sh,
struct mlx5_hca_attr *hca_attr)
{
- uint32_t dw_cnt = MLX5_ST_SZ_DW(register_mtutc);
- uint32_t reg[dw_cnt];
+ uint32_t reg[MLX5_ST_SZ_DW(register_mtutc)];
int ret = ENOTSUP;
if (hca_attr->access_register_user)
ret = mlx5_devx_cmd_register_read(sh->cdev->ctx,
MLX5_REGISTER_ID_MTUTC, 0,
- reg, dw_cnt);
+ reg, RTE_DIM(reg));
if (!ret) {
uint32_t ts_mode;
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 16ddd05448..37b5402447 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -1479,8 +1479,8 @@ mlx5_flow_item_acceptable(const struct rte_eth_dev *dev,
"mask/last without a spec is not"
" supported");
if (item->spec && item->last && !range_accepted) {
- uint8_t spec[size];
- uint8_t last[size];
+ uint8_t *spec = alloca(size);
+ uint8_t *last = alloca(size);
unsigned int i;
int ret;
@@ -8477,7 +8477,7 @@ mlx5_ctrl_flow_vlan(struct rte_eth_dev *dev,
.type = RTE_FLOW_ITEM_TYPE_END,
},
};
- uint16_t queue[priv->reta_idx_n];
+ uint16_t *queue = alloca(sizeof(uint16_t) * priv->reta_idx_n);
struct rte_flow_action_rss action_rss = {
.func = RTE_ETH_HASH_FUNCTION_DEFAULT,
.level = 0,
--
2.47.0.vfs.0.3
More information about the dev
mailing list