From: Tyler Retzlaff <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/net/mlx5/mlx5.c | 5 ++---
drivers/net/mlx5/mlx5_flow.c | 6 +++---
2 files changed, 5 insertions(+), 6 deletions(-)
@@ -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;
@@ -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;
@@ -8474,7 +8474,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,