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 164D845610 for ; Fri, 12 Jul 2024 12:51:17 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 10FED402E5; Fri, 12 Jul 2024 12:51:17 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2047.outbound.protection.outlook.com [40.107.237.47]) by mails.dpdk.org (Postfix) with ESMTP id F344A40261 for ; Fri, 12 Jul 2024 12:51:15 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hGlYZZ9hEOEBOamBT9ylkQ/FGu76pqKw/mlEoQjQeYoRLzj54hBD2ULSC83DXqa6UWMVu/BRwk2xgN0Vk/KZE7uTBEwNl9ubALVmqKZQPgLimVbCiiLLeBcMSjlntg2njsn9k2LGVId2hhF96SfCsppJItekQBo4XK8CrKhDZbg7jvfFnSiIKfWR7CufTMqwGHpAPmx1zZEqhqoBIyaEbfnhNDZr+fF4BJky6dsj7DpVCjPaCuB3xdv+3T/nkHUkvbpKmi46JDC+89g8oRpiILcZspllGdAFfvpzl0jeeoO4GPhtU0P0KtZ0MqQDqDCHfy5DFa35NEB85S812jryCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=kduBDJf+8yOrx3tIrJtnwFMvpUpNxdttSvCMVTVtwVI=; b=f9I4mtxb6j8GNHguSbH+MVYLpIFpl1UC27q9IvdHmUgYbmJ+ZhKhbTP/6i6KZsIztIRhnI4X5RDzrjaJo0hQ6ZUCTbIpVMpwrDAFMFSJQJqC2Oqvf8GFrbdWvtYS35GLCDzpneZLZAZ4Js1EgYAauKjwPY6sPk+8qiQ1R1yRsesmMbY3huInaWihC+1fp34ihoyNQSsUT0rUh62n+Zaed3aLNivPDlMH/7pJ5HTJe8MFKn3gN/C/BOktvyMmJnjwcXhK2I7G/TmBEQTSWePKPv7jPZNIfkBbs3Zjrnp04ys8XaI8RQ/6dnp+SfJXiv3gNChlibuKzuZubk+0cM4EhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=arm.com 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 (0) 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=kduBDJf+8yOrx3tIrJtnwFMvpUpNxdttSvCMVTVtwVI=; b=h7VxGXD3RT3sJ5SQQUNsYlJhL8jjkc8NTyyRJekio+qD0wNJT7THvmHeU7qQmYzhqG8vJVxx4lOQqW5za/j/HozhhaKrDbvSoJfJU3G162JaOy3zT4AzRcvxLJp99C9Umo1HqEkyL5JD0wjiCpr5jpp3f0QJJXNjk6mWXWer697HbKdFBzVG/34oEc7TaPUz0C3oWkVb/A9oBfsDMQ0Ti/vyb0mXhj3s2JSap0OaMA/wK7OJHvQBIifd179DnpMHOULzkzMLCIrREx3CIf+bgGCoeNs8VRbMumT+jyq1DxXxiPI4vLSkvnMNQjAjknfbCOIcSAM4FWbQioZWFHUi+A== Received: from BYAPR21CA0010.namprd21.prod.outlook.com (2603:10b6:a03:114::20) by MW4PR12MB7437.namprd12.prod.outlook.com (2603:10b6:303:21a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Fri, 12 Jul 2024 10:51:13 +0000 Received: from SJ5PEPF000001D1.namprd05.prod.outlook.com (2603:10b6:a03:114:cafe::c) by BYAPR21CA0010.outlook.office365.com (2603:10b6:a03:114::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.11 via Frontend Transport; Fri, 12 Jul 2024 10:51:12 +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 SJ5PEPF000001D1.mail.protection.outlook.com (10.167.242.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7762.17 via Frontend Transport; Fri, 12 Jul 2024 10:51:12 +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.1544.4; Fri, 12 Jul 2024 03:50:57 -0700 Received: from nvidia.com (10.126.231.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.1544.4; Fri, 12 Jul 2024 03:50:54 -0700 From: Xueming Li To: Luca Vizzarro CC: Paul Szczepanek , Nick Connolly , Maxime Coquelin , "dpdk stable" Subject: patch 'vhost: fix build with GCC 13' has been queued to stable release 23.11.2 Date: Fri, 12 Jul 2024 18:44:37 +0800 Message-ID: <20240712104528.308638-52-xuemingl@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240712104528.308638-1-xuemingl@nvidia.com> References: <20240712104528.308638-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001D1:EE_|MW4PR12MB7437:EE_ X-MS-Office365-Filtering-Correlation-Id: 37edc839-c03a-4cfb-42a3-08dca2608bc3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|36860700013|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RlNtQ25yRnZldC9xRVF2S0t5ZkJ5VlRKVVZzWEJ0UldTeUdnbUNBbTFDbUJY?= =?utf-8?B?OUhuc0NRelZpVkQ4N2xZdGxGbTlsUWFxUTV4NjRpVG9ISTV5OEZVbDNkMFJi?= =?utf-8?B?U0ZDeTVjU2VSUVMzcjlQTjcxdThGazlDcFdsbmJFVHR5ZGJtYjFDUUI4NUVJ?= =?utf-8?B?VDZnVGVzNDZSZm1WYXoyQU9Od3F5MmlLOHIvWXpSall5RVo0aDVCWStMcjdB?= =?utf-8?B?MFE4aFpFNTU3NnBxWCtEVTJ0TVc3MVRiTVhmOENuYmlwa0RQYnlRdi9jTmF5?= =?utf-8?B?blpOc1Eya2hZMW5EcVhsWnNjeS9xMmpyWVRrQXpKWDhTb2xhSVh1THRNNXpE?= =?utf-8?B?bCtSRkgweUlNSzFCOHByNExhTDI2ODAyZ0x6cWFPdktYaXYrazRuWE53dU85?= =?utf-8?B?L1BGdnJCNFZsVTc1VXFQam9BdWtGb3IxMDI2MlcvUzhmUnBFL3RZRk1VcmM4?= =?utf-8?B?R2NHK2lNRG9WRUhWWlF6aTRSYStCRExsV09WZWQrU2ZVQkl2QS92RnVMTUFE?= =?utf-8?B?Yk9vdEVTRXpMR0hVd0ttYWcxWHY5NW9JUnd3aFBKTG9uNjl4NlU2WGowWThF?= =?utf-8?B?VElQZVBOcm1vMGY2RUhKckdVN1RNNm9LRWtTVTV3ZW9lTlBSc0pxcDlSOC9T?= =?utf-8?B?UW1GNUlFMzI4NStXaTJES2poUXBSL3llaEdHZmhSTXFuWW8yUk5zbVBNOGEy?= =?utf-8?B?cCs3VFExaldWSlZDeC9FY0dTUlk4UURVbmREZFN0Z095dXhFS0wyMTdiUGlu?= =?utf-8?B?djF2VXJoUDJjdFB2L2owYUlEMk1LbHZjUXdwNWQ1VVpreTIvNVF4ZkZxazBa?= =?utf-8?B?Q0hOQVltTXhqbW1MZmRrMVEyVHFja2JlV1RYMmRKYkpOcElKbFVBRFR4ZXk1?= =?utf-8?B?UDJpeU82ZnN5c2JFejNBN0NXVERuZzRMUFB0eVI1NFU4QnFiRnZaZ0RvKzV0?= =?utf-8?B?L09telZWeVYrZTU5cjhXanNOUUc3RlZSTElWVUJSRkFIb21YZDFRZ29jSEtz?= =?utf-8?B?bEJsT2libE5SVnAvNVR3WkYxM0hDZjZXQVhkQ3NJZGRTQ2hIays2eC9mZ1dr?= =?utf-8?B?VWxodFA2VllxZE5JR1NKMFB1WjA4KzREdVNjRklpUXAzdzcxZWZTVk00M0pz?= =?utf-8?B?TFdHMXlWVkJxMXh3TEE3U3VYR1FVVjdPYXBRdHB5SmhDWDI5cjZsSE9JeVRt?= =?utf-8?B?bFdtU05xenRjbHFiTkFZNlVGTzNiWkg0VGVNZFMxU1V2U0Z4V0RFRFRCNFg2?= =?utf-8?B?emxkNFprSXFhZDk3UGlmUElrcjdzNDlwVkUrSjIzL1hNb0xzS1JJK2lzcUVO?= =?utf-8?B?ZHdqTXZ2bFZiNjRiNzZKN2lwYUhCWG9mNVNFcENCUkhadFU0K1ovQ2szcmFL?= =?utf-8?B?WTEwQlhMVjluZ0owTjh4ZnJWSXYyVWVSdFV3cjFtTzE1c1gwTkZhK0x4T0Rq?= =?utf-8?B?aDNaNVlnMmxYTHJtSnROYU1KWUZrOUlnS1MrdVV3UWhOTWtROXhiZDBnWGJv?= =?utf-8?B?NmwydTVmVFF0NlRvVHAvVExNZGxsallNZ2t3LzZIVlNybVo3dnFsMmJDYVY1?= =?utf-8?B?anNJdHdyVVFDaDFNYUZUWXlVZkdhTVBneFNBcFpEems3UVNHTEgzVzI3eFlS?= =?utf-8?B?Wk95TmpVOGorUUU4Mnh6K0ZjUjE0QTc1SHNlMTIvclpqTncxb1FOeXB0cWM1?= =?utf-8?B?U0hONG1oYkRmRlJEQWxpNmp3TzA3R1pjbHczZDQ0MTNFOEpiZ2xMODlPZ3hP?= =?utf-8?B?aGlrNXlSTmo3ZDIxenhSdG95TDh3RFBsZVJLU24xd2tYS3kwSlVuMEtBTVl5?= =?utf-8?B?TGZHK1EvRHRNY09xVVppTEJzQTdyRWlBWWNXSGJ5M0dzSEdnUC9QRDAwamR1?= =?utf-8?B?bkExdTAvb2plS1lKU2xXQWxzN0h5UXlKWGFNWTluN0VEUFVBbVV3UmtRb0lo?= =?utf-8?Q?1FPXM/gs+bUffcEdr/xSSDrYuNp+cB9L?= 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:(13230040)(376014)(36860700013)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jul 2024 10:51:12.5001 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 37edc839-c03a-4cfb-42a3-08dca2608bc3 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: SJ5PEPF000001D1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7437 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 23.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/14/24. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=13147e7b044acd718289af6d1b17fe2a3a87ee1c Thanks. Xueming Li --- >From 13147e7b044acd718289af6d1b17fe2a3a87ee1c Mon Sep 17 00:00:00 2001 From: Luca Vizzarro Date: Wed, 10 Apr 2024 16:21:01 +0100 Subject: [PATCH] vhost: fix build with GCC 13 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Xueming Li [ upstream commit 8db1acabeea3fa4b0c673588cfff2b01e0ae9615 ] This patch resolves a build error with GCC 13 and arm/aarch32 as targets: In function ‘mbuf_to_desc’, inlined from ‘vhost_enqueue_async_packed’ at ../lib/vhost/virtio_net.c:1828:6, inlined from ‘virtio_dev_rx_async_packed’ at ../lib/vhost/virtio_net.c:1842:6, inlined from ‘virtio_dev_rx_async_submit_packed’ at ../lib/vhost/virtio_net.c:1900:7: ../lib/vhost/virtio_net.c:1159:18: error: ‘buf_vec[0].buf_addr’ may be used uninitialized [-Werror=maybe-uninitialized] 1159 | buf_addr = buf_vec[vec_idx].buf_addr; | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../lib/vhost/virtio_net.c:1160:18: error: ‘buf_vec[0].buf_iova’ may be used uninitialized [-Werror=maybe-uninitialized] 1160 | buf_iova = buf_vec[vec_idx].buf_iova; | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../lib/vhost/virtio_net.c:1161:35: error: ‘buf_vec[0].buf_len’ may be used uninitialized [-Werror=maybe-uninitialized] 1161 | buf_len = buf_vec[vec_idx].buf_len; | ~~~~~~~~~~~~~~~~^~~~~~~~ GCC complains about the possible runtime path where the while loop which fills buf_vec (in vhost_enqueue_async_packed) is not run. As a consequence it correctly thinks that buf_vec is not initialized while being accessed anyways. This scenario is actually very unlikely as the only way this can occur is if size has overflowed to 0. Meaning that the total packet length would be close to UINT64_MAX (or actually UINT32_MAX). At first glance, the code suggests that this may never happen as the type of size has been changed to 64-bit. For a 32-bit architecture such as arm (e.g. armv7-a) and aarch32, this still happens because the operand types (pkt->pkt_len and sizeof) are 32-bit wide, performing 32-bit arithmetic first (where the overflow can happen) and widening to 64-bit later. The proposed fix simply guarantees to the compiler that the scope which fills buf_vec is accessed at least once, while not disrupting the actual logic. This is based on the assumption that size will always be greater than 0, as suggested by the sizeof, and the packet length will never be as big as UINT32_MAX, and causing an overflow. Fixes: 873e8dad6f49 ("vhost: support packed ring in async datapath") Signed-off-by: Luca Vizzarro Reviewed-by: Paul Szczepanek Reviewed-by: Nick Connolly Reviewed-by: Maxime Coquelin --- .mailmap | 2 +- lib/vhost/virtio_net.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.mailmap b/.mailmap index cc90b111fd..e1ce4e1b1b 100644 --- a/.mailmap +++ b/.mailmap @@ -1021,7 +1021,7 @@ Netanel Belgazal Netanel Gonen Niall Power Nicholas Pratte -Nick Connolly +Nick Connolly Nick Nunley Niclas Storm Nicolas Chautru diff --git a/lib/vhost/virtio_net.c b/lib/vhost/virtio_net.c index 895a79cf51..6d53ff932d 100644 --- a/lib/vhost/virtio_net.c +++ b/lib/vhost/virtio_net.c @@ -1935,7 +1935,7 @@ vhost_enqueue_async_packed(struct virtio_net *dev, else max_tries = 1; - while (size > 0) { + do { /* * if we tried all available ring items, and still * can't get enough buf, it means something abnormal @@ -1962,7 +1962,7 @@ vhost_enqueue_async_packed(struct virtio_net *dev, avail_idx += desc_count; if (avail_idx >= vq->size) avail_idx -= vq->size; - } + } while (size > 0); if (unlikely(mbuf_to_desc(dev, vq, pkt, buf_vec, nr_vec, *nr_buffers, true) < 0)) return -1; -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-07-12 18:40:16.457325645 +0800 +++ 0051-vhost-fix-build-with-GCC-13.patch 2024-07-12 18:40:14.096594228 +0800 @@ -1 +1 @@ -From 8db1acabeea3fa4b0c673588cfff2b01e0ae9615 Mon Sep 17 00:00:00 2001 +From 13147e7b044acd718289af6d1b17fe2a3a87ee1c Mon Sep 17 00:00:00 2001 @@ -7,0 +8,3 @@ +Cc: Xueming Li + +[ upstream commit 8db1acabeea3fa4b0c673588cfff2b01e0ae9615 ] @@ -55 +57,0 @@ -Cc: stable@dpdk.org @@ -67 +69 @@ -index 111dbb0ac3..ed63605a15 100644 +index cc90b111fd..e1ce4e1b1b 100644 @@ -70 +72 @@ -@@ -1030,7 +1030,7 @@ Netanel Belgazal +@@ -1021,7 +1021,7 @@ Netanel Belgazal @@ -80 +82 @@ -index b406b5d7d9..370402d849 100644 +index 895a79cf51..6d53ff932d 100644