From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CC6684605F; Fri, 10 Jan 2025 21:26:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CE60A42DD4; Fri, 10 Jan 2025 21:24:32 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 7438F427C5 for ; Fri, 10 Jan 2025 21:24:01 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1213) id ACAB7203D602; Fri, 10 Jan 2025 12:23:59 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com ACAB7203D602 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1736540639; bh=c2o9QTFqTMMlIUXckCfLoisFolmdQ9B1GnY4okgubKo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=h8rOknHsgIJYCvXHb4O5KPLUFI22xBk+Jxz+wJjiuxgqMH5ajnJh22TMTFIvnvIWu v/wdvsVuGtoh6wvMl7bg98Xb6gHpYZtw626tgEJFEHx6dvebikH1+cnsliQxs8Dmn7 0G/gFQCDTSwuI3Pw0BWAL8iKuz1EOMNbNwp/UlCY= From: Andre Muezerie To: dev@dpdk.org Cc: konstantin.ananyev@huawei.com, homas@monjalon.net, david.marchand@redhat.com, Tyler Retzlaff Subject: [PATCH v14 17/81] net/mlx5: remove use of VLAs for Windows built code Date: Fri, 10 Jan 2025 12:22:36 -0800 Message-Id: <1736540620-21764-18-git-send-email-andremue@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1736540620-21764-1-git-send-email-andremue@linux.microsoft.com> References: <1713397319-26135-1-git-send-email-roretzla@linux.microsoft.com> <1736540620-21764-1-git-send-email-andremue@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Tyler Retzlaff 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 --- drivers/net/meson.build | 8 ++++++++ drivers/net/mlx5/mlx5.c | 5 ++--- drivers/net/mlx5/mlx5_flow.c | 6 +++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/net/meson.build b/drivers/net/meson.build index dafd637ba4..170e7339e5 100644 --- a/drivers/net/meson.build +++ b/drivers/net/meson.build @@ -68,3 +68,11 @@ drivers = [ std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc std_deps += ['bus_pci'] # very many PMDs depend on PCI, so make std std_deps += ['bus_vdev'] # same with vdev bus + +warning_flags = ['-Wvla'] + +foreach arg: warning_flags + if cc.has_argument(arg) + cflags += arg + endif +endforeach 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