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 6A66AA00C2; Mon, 31 Oct 2022 19:25:35 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CF8AB410DC; Mon, 31 Oct 2022 19:25:34 +0100 (CET) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2069.outbound.protection.outlook.com [40.107.220.69]) by mails.dpdk.org (Postfix) with ESMTP id 3870440223; Mon, 31 Oct 2022 19:25:33 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kt3tXrAyPKXoxRTEyNk5WbRjtHgXN98hnNtOmQE8AzLIAhuVM/HxFNQubG8yYT0hbnSSMg1BkI6iBuiwo33HDyK0oCRIGnC0SXHkm8RBFJqw+j2BP33p6sSWsHaaG9ERWMzkwvQJduHYN7cH2Vjp9SsX5Ho15lMBrOeJHGzPLn6ZmgVXC1su1WXljm2riWnlkxOyjfKdUO1LJv3LKkuRUCHPf/AnG6wVwEGiGaKH0kkhv5Y9UDTqReYCUdm+Mj7biZTSCsnnpJs6/+dRaPdZ8nCY+nLps7xWaf6/385vk4kV4aJfEstM/ZiDQ9TtLC+r57pOc4KMH+anlehtQ2A0Aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KVuSL/cvDS8TbmfccY75f50EtVRKkVO2srYpUQYin/M=; b=cUFJfXE8OlQFCSXA49losM/CNpCWgMlTq9Sf3q47KQhzccPH269zfLNzRwl+sPp/JGO+mKJgTyt6SOlbJRa4ZjkwHUX4K8wO2P1yMibW08KpLinXBkbpYhjV3Uz32bpa0AAy/qiP/AQjjtCKf+kCZEzszlDo6ygRBVhmxNjg2vaPrMvoNC+715HjzppQzhJD4+NYQFWGbxHOGoaTGbisA4aDmss1ovgX4RQU8H/C8CzoL4N35y+Al+FBSPoVf37N48l+aVvNltQJ5b0DC5ATurU07wjmvyJXIZjax3tthbgoCYysVffqTmQYbIX5SSYvEEGCrxVl00oxyvfSgTtkLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=monjalon.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KVuSL/cvDS8TbmfccY75f50EtVRKkVO2srYpUQYin/M=; b=qg/n2cs6lPFFTKISH/7E5xMlkiehxihWtXYLqfpuxuVjIMYa6aslJpBJhonQ1WKTADOP7ZF8x+FPFYJ9nvuvWxiPhD4ny7rZJz7wurTOUAKdLq9qFxo69TmTejhFJI2ALIX/dhcR7Qnk3wvuCgUYm3V0xWqSeju03p2Pe2cGWAlbNoxwevJBWpc3wz2seTx0xm3y5wGUxRWEWRxZSPOKq9R7PUjhw4cqeir7+PUheL174PNCCJJtu80Li4L2Rqr7m99DN3qFIhRmgGd/X7NsKo/z093XsLKHP7tSAYfwVHv31soEwQR6FtC5YSlE5GrW2wx4hPAaMVvbvHQ3gfWMlw== Received: from DM6PR12CA0011.namprd12.prod.outlook.com (2603:10b6:5:1c0::24) by SA1PR12MB7443.namprd12.prod.outlook.com (2603:10b6:806:2b7::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.18; Mon, 31 Oct 2022 18:25:31 +0000 Received: from DM6NAM11FT018.eop-nam11.prod.protection.outlook.com (2603:10b6:5:1c0:cafe::5e) by DM6PR12CA0011.outlook.office365.com (2603:10b6:5:1c0::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19 via Frontend Transport; Mon, 31 Oct 2022 18:25:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by DM6NAM11FT018.mail.protection.outlook.com (10.13.172.110) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.14 via Frontend Transport; Mon, 31 Oct 2022 18:25:29 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Mon, 31 Oct 2022 11:25:18 -0700 Received: from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Mon, 31 Oct 2022 11:25:15 -0700 From: Bing Zhao To: , , CC: , , , Subject: [PATCH] net/mlx5: fix the building with flexible array Date: Mon, 31 Oct 2022 20:24:56 +0200 Message-ID: <20221031182456.432384-1-bingz@nvidia.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT018:EE_|SA1PR12MB7443:EE_ X-MS-Office365-Filtering-Correlation-Id: 27c1f9cc-6dc7-45a0-f0a3-08dabb6d4a1c X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pJYl1e2lKT23dwtQBbbxJ07D1NfQN9ft4lMAfUwq5+SuDKGJ/GDF72M0j3DjqE1sV4KXblhr0wS/1ejJUJvjI7MEsgRxpzxKxmA537Shp6XUnIbfSko6Tld5rbBK2tnz3PfR3rNcTB4gTtstIHz56XAirI0jkR6rAcDtr/f4hVTH5Hyay2IhVW7Rd0qRdmooxHajbjg6hKuHP23nELF6F2uvrC/hedqmk1yxm553+6qCqynWF6LGuB0shyrlbv+Mvp3pSgiSoqiyuxDOul29lqidoEf2nXsufGkiT7Pe5c2hOicmh3+NyqLz/g8B6bLEyTQV76bJ9C1dTgOud3ziFQFk+HsamIMK+lwjibtIVX+Ol1zQupqU5/SEXyQpr9VANy8MnydZWBcTGOlsywqnFLP7xkRmdQ3LU7P3BcQGk20tjmaQPfdysY7VV60OyfGsX2K+zsaow0SZLPzMUGfdmX5JvuFelVS/8mosBtEx8Miu43nLodhJRo+kc3vDxdlcsY0JTpNH+jBM0NyoeEDvPVxdBAwmWiL2QNzo8AvZftQXqwxEM0LWtjgZiNMTX7R+9rz28wPvTc3mTZt8pwK04fmYdRIt4rVkE997ckfE96gODNeL2o7LpOdyQLIXB/zY4ce0vZ2ueMC03ccg0ZAiJgOheJLOeOR/cD+Y3Jcxm0U80ANIIY5JS7hxcJ76eiUrR0KmCBJDc3upsZ3EelAk+zeae9wesver6lYLxYE52FL51liAG/bFFtu/Y4wjXhjLQrwuVAP4RHqyQpOrKLvBmg== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230022)(4636009)(376002)(346002)(136003)(396003)(39860400002)(451199015)(40470700004)(36840700001)(46966006)(316002)(6666004)(54906003)(110136005)(478600001)(8676002)(70586007)(4326008)(7696005)(70206006)(8936002)(2616005)(41300700001)(36756003)(40460700003)(186003)(2906002)(1076003)(336012)(16526019)(26005)(6286002)(83380400001)(47076005)(426003)(36860700001)(82740400003)(82310400005)(7636003)(356005)(86362001)(5660300002)(55016003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2022 18:25:29.4024 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 27c1f9cc-6dc7-45a0-f0a3-08dabb6d4a1c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT018.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7443 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 With some higher GCC/CLANG version, it is not recommended to use a structure with a tailing flexible array inside another structure. Accessing this array may be considered as a risk to corrupt the following field even if it is by intention. The error below was observed: drivers/net/mlx5/linux/mlx5_ethdev_os.c: In function 'mlx5_get_flag_dropless_rq': drivers/net/mlx5/linux/mlx5_ethdev_os.c:1679:42: error: invalid use of structure with flexible array member [-Werror=pedantic] 1679 | struct ethtool_sset_info hdr; | ^~~ Changing it to memory dynamic allocation method will help to get rid of this complain. Fixes: e848218741ea ("net/mlx5: check delay drop settings in kernel driver") Cc: stable@dpdk.org Signed-off-by: Bing Zhao --- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c index 661d362dc0..d8bb03b875 100644 --- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c +++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c @@ -1675,10 +1675,7 @@ mlx5_get_mac(struct rte_eth_dev *dev, uint8_t (*mac)[RTE_ETHER_ADDR_LEN]) */ int mlx5_get_flag_dropless_rq(struct rte_eth_dev *dev) { - struct { - struct ethtool_sset_info hdr; - uint32_t buf[1]; - } sset_info; + struct ethtool_sset_info *sset_info = NULL; struct ethtool_drvinfo drvinfo; struct ifreq ifr; struct ethtool_gstrings *strings = NULL; @@ -1689,15 +1686,21 @@ int mlx5_get_flag_dropless_rq(struct rte_eth_dev *dev) int32_t i; int ret; - sset_info.hdr.cmd = ETHTOOL_GSSET_INFO; - sset_info.hdr.reserved = 0; - sset_info.hdr.sset_mask = 1ULL << ETH_SS_PRIV_FLAGS; + sset_info = mlx5_malloc(0, sizeof(struct ethtool_sset_info) + + sizeof(uint32_t), 0, SOCKET_ID_ANY); + if (sset_info == NULL) { + rte_errno = ENOMEM; + return -rte_errno; + } + sset_info->cmd = ETHTOOL_GSSET_INFO; + sset_info->reserved = 0; + sset_info->sset_mask = 1ULL << ETH_SS_PRIV_FLAGS; ifr.ifr_data = (caddr_t)&sset_info; ret = mlx5_ifreq(dev, SIOCETHTOOL, &ifr); if (!ret) { - const uint32_t *sset_lengths = sset_info.hdr.data; + const uint32_t *sset_lengths = sset_info->data; - len = sset_info.hdr.sset_mask ? sset_lengths[0] : 0; + len = sset_info->sset_mask ? sset_lengths[0] : 0; } else if (ret == -EOPNOTSUPP) { drvinfo.cmd = ETHTOOL_GDRVINFO; ifr.ifr_data = (caddr_t)&drvinfo; @@ -1770,5 +1773,6 @@ int mlx5_get_flag_dropless_rq(struct rte_eth_dev *dev) ret = !!(flags.data & (1U << i)); exit: mlx5_free(strings); + mlx5_free(sset_info); return ret; } -- 2.21.0