From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11021102.outbound.protection.outlook.com [52.101.65.102]) by lore.virtuozzo.com (Postfix) with ESMTPS id 6081080B98 for ; Tue, 20 Oct 2026 16:30:58 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QojddlN7kChUkmh5HgAClzVHjaARl1z5rXY70MQa5Pztx/5Rv9Bq2Bg79LMEMso4ZF/6E0YrIbbYmKYblLfcs0/gXRnllbhpdsL9TL1cs0t9f5bTp+eiukkin6MIiaMYAEe32cxO9TuIE2FabavryQgd61Y8ESvJuHuH2N2xhfvQteF7CLleJcsjMbqQT3+ntH8oPYMVZaBeakChy0vEfTrAQqR3Og9MlJfqyZNytdcpRmjXubSik8kI3/2RzmqqamaRhjbuN31Od/NVgo3fdWK13kbCAdEmimu07XodqUWWINbmF52CqovAuxBm+e2AvUAfUcQ3KohdGwUjhE+FNw== 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=zw0JQhZwPCuDBULSwbXMO3x4pT+Xi9kilXmtenJqTDI=; b=Fu7yYchiRkaMNmXmV9lvBBwXgzJsIWnKiiyN3Nfn031684p5kq6tBp4usRp9/I2pE0MiHsZPSS6bcD+/8D9bWL8s1VC3JQSVOYg7P6TlYbAS5nsLr2jTLzCRDnK4fC+j7Mp2nOiqiHN5iw/aAiz5GpYzVDEb9wr5csKuUQ5TtbwBt5qDPvmpruB/zxjvVqt2HvQ8KSUqY862flmukhJ2+/qW9rbPefpUksYspaFotlX90dnmrxGrpZLSTIjdTTPo2mbDhRvm3BhmzUA5H83EqecjY45J+MbTBfEHuwYSZaDRgD8v6gc6hTZGSAG/be177rZ7blBcfrBmm2wBoqqDnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zw0JQhZwPCuDBULSwbXMO3x4pT+Xi9kilXmtenJqTDI=; b=o+HOrOY+FNave37KE8wWRWMBZxbSxkCK1u866/5DkRfMtsA2t51zJOX9nDIHezcu9eGt9ank7Kzx8s6KGpEvOvBW0Ev6appMVA1ZclTGjqfFVGZlL4G8kvmJFC0dZBHDEEPokcFxKZbd40ZaAi5Pc7gRAnp6to8Lnzg3P1EH97plBbMi3BdlGlldfRUsF9mH2MklagckkWTQnMdOcO6nYJ3L1BvN2yM4maiUwkhWGN/NmGno7OYSUQ4HjPiQww4TaFPuyTyN1CCHDVwZjXfY2zx0SRC0YsPRpgYBFv3Ja2EC6TiF8fOksS3wZ99VIGNj+bKkGZiotQ53VKZjBqlprA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by VI0PR08MB10683.eurprd08.prod.outlook.com (2603:10a6:800:208::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.14; Tue, 20 Oct 2026 16:30:56 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0546.012; Tue, 20 Oct 2026 16:30:56 +0000 From: Andrey Drobyshev Date: Tue, 20 Oct 2026 19:30:50 +0300 Subject: [PATCH QEMU HCI-8.1 v4 10/31] vfio/pci: Initialize rom_read_failed in vfio_pci_load_rom() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20261020-vfio_v1-v4-10-83a5668230e5@virtuozzo.com> References: <20261020-vfio_v1-v4-0-83a5668230e5@virtuozzo.com> In-Reply-To: <20261020-vfio_v1-v4-0-83a5668230e5@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIUP296CA0056.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34b::14) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|VI0PR08MB10683:EE_ X-MS-Office365-Filtering-Correlation-Id: 16cf878f-8e47-4ed5-9c00-08df2ec7831f X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|376014|366016|23010399003|1800799024|261009223027099003|10067099003|5113699003|22082099003|18002099003|56012099006|38350700014; X-Microsoft-Antispam-Message-Info: 5xqGq0tK1uwJfMrnmHUXILokdAdrFWOX/ySRQHSl+WNP+fkbx2D1VtOU5Rcj6Qw1kIZM3P2/5kyvKvP5gnP2dJ+ZurTuskXu0WgqdINkGL24E8zYvYi5iZqkh3m5vC41wE5iyTAJbkkzEyaM6KGbecofEUs7CHNqdjCdmxbz87+KessYxOLKVO+3/y6/Manwt32JCASXNAb5vBkQsLzIdOF/Jn0h4TV4aL8SQFGSi+7upDLz6MHWwQVtq3EUMA6p1QW+qgPfot0lZrtUpmxIA27WXSNkAwYk1JIunDdcCxhXt0tJzH0qR/T4VpSPvqa7sRYVXNXpRw+4oLzW+OXk+pyyTcuhwiYg3B89SolgTsChFhnvvA8mX+wJu6bwe+NBHnUCIvZkImrNzT7yEph14VWFoew7HPXVU3/8VX32ByL9OtlMwrvoqAzF+SobJrDIY1ZQzqG9LXVY81ByLcljFRJxJR6z61u2nR9WKzWm9CRbnQGvoGQMTm2yBbPnZTv0rkRfomt5sNLSfKlhMYzUOT9yQmyPqBqftO07ZLPJuRNoYWZyOh/eJauuSjEoiOmic2C4aGSgP4EMnLAJNBjm8z0xf9RWaIdFwrpuaxa1Q/j4wH7YWPfsjDmqjeu2K7DLR7yD+FXSE0D1fWEDi91oWj6ka+GoOIljHPX8k66Kz8o= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(376014)(366016)(23010399003)(1800799024)(261009223027099003)(10067099003)(5113699003)(22082099003)(18002099003)(56012099006)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WWkrOS85NnVodjFIclNTMWMvQ2ZYeEU2VlJSTUliekE1bUNyQ0NjNTFkakQ5?= =?utf-8?B?TzFkeXZXQndpT0xzSDJmY2pYNUQ0ZlRQdWlMMnh6K3RWM1Y4MzZjeXUxZVVI?= =?utf-8?B?ZE9DYzN3eHBzWktvVXdMcVdmV1NNUDZPZ1o3azJXbk1oUzhVZEJKUURGZVo5?= =?utf-8?B?Y0VDWlRQb1RRMFl6c3FsbmVEUStMa1RoR1NQc2F4ZDdUd3lXUXdIcmpoYWVs?= =?utf-8?B?bGRlN3N3V2FvMWNTOUM2YTBmUjlCKzBVdDEvemMxb29RRy8vUGxKdVFvbEZh?= =?utf-8?B?YmZYdkNjSmF1b2x1T1U3Q1p0a3MwNmx2eU9kQ25ZVjZWckhQZVcyVE9GdlVV?= =?utf-8?B?ZU5PUDRpVGVJZk5GQ3FkenU5cDlVb1VFeksrN2FVczhTUC9RanJZc2hEL1Yz?= =?utf-8?B?d3ZKaVc2VHlwdXR5dWE1S1dNc0QwNVlaTHlpTlBGRkxrTEp5YkRJUXg0RjFV?= =?utf-8?B?cFhsTG9xT2lHMDFTRVlBZHRVeEhsRXJKQXN4RkJoY3dzSVpaSHZLUVZtaXdp?= =?utf-8?B?TFgxY21PMFMvdWY0WG9YWHQ2V2RRaGdpblFSNTJEZ2RESW9CdjdZQnRPZ3l1?= =?utf-8?B?ZVRFa1ZuZ2tDOUdvd25pSmllZHc0REtTYXFkVThveVZkdjFXZVVoc050TmVy?= =?utf-8?B?RE9LMGRRN1Jod2dReit5TDVRSFR0RlRkOG9rWHNPWndOQnhEd1kvZmh3NWZj?= =?utf-8?B?MVE5bkt0YkI5eEtvVkp0R2VkQnFuKzdpUWNteDcyYWZITmJWaUhNNWo2TWVN?= =?utf-8?B?VnQ0cW15QS8rNnRPRmxMYXBCelA3VGc3L1dkZjZkUGFiY2J6cTJ3Uks5c05k?= =?utf-8?B?dlVIUFRwS25rVmtPVXMzNUlJd0NITnVEZmFFRmM2T1U1a0xxRXdSL1VESU5m?= =?utf-8?B?OTBMY3RsbXNTU3NKQldzU1VNL1NmYXFNTldQazUzL21HbHdOeFpFNUtRNXBz?= =?utf-8?B?VnhLK2JtMGQvTUFlRGptQVNiU2dOL2M3dTQ4UHRWYVNGWnFScTlMelRSYXBu?= =?utf-8?B?cXZiNnZ1TFZqMUdWYlRON1F4dXB3OHlybGFuQ3BMcUtCRG5FTVd2dXJ0ZDZK?= =?utf-8?B?S0Ivam5ySXk1ektJUkhRU1UxUC9kMXBSb3FDS1FBYTI2ZTBTNE5KMGNDSTN6?= =?utf-8?B?MVVFRWdrbXBGYm5Ba284cWV0eGpaUlhmZTFUTVRKVUs4UWZpQjhIWkFXZnNB?= =?utf-8?B?bUljZVdlVmJiZVBHMUhOTEFvTG9hOVVud3g0TmdoRWxabGphYU55QWY5cU8y?= =?utf-8?B?YnYycDh2M0ZlZjZqZmZWZjcrRUFxS0pPanIybjBLSE1qMkZMeGFnKzFSMUVv?= =?utf-8?B?c09KeDFoM2pMSHE4a3Fqd2liL3BSeFhaRmVzSU1yczlqZVF4ekY5aWo4QUN1?= =?utf-8?B?T09jNWdtK29nYWM1N3ZCbG84REJCSlBSNnl0S0t6RmRsV3dLTko3TFRtdDZ4?= =?utf-8?B?K2FYNWpPQjBQZFpSdi9nK2hVTWp4MmVIY1BXNmJINU8vRzJZNG9tb2dyYW9B?= =?utf-8?B?UHdBVUJzVDlMOXhtanRzRlIxSkttazY3d1R5SklVSmwycWg4bGtMS0FGQksx?= =?utf-8?B?c01BRGgwS0NTckp2MUdlQ0lGTHFCVTJhc2wvOFZTRm80L0JVeWplSmJzSmhu?= =?utf-8?B?dGdybHluUGhGaXlKd0wvY0JLNG5GZ1ZOT3lzMGtiSFZwRlVkckxpRDNaNkFN?= =?utf-8?B?d2FLemt6OHFvbWkvVlB2TEttZ2xZeVpIWDhoRnNxNDYyVW9zNWpGOWI3bUFl?= =?utf-8?B?RHcrSnEvb2U3MXlxalJ5UVJoNGw3bk13WVhlU2NSeTRWQUVWNTFWMC9vUWUw?= =?utf-8?B?LzhrTlhsREJQVjJYakJvUGlocEhWQm1WWG1KeWhlRG5USitjZmpBTkRhSFFX?= =?utf-8?B?TzRoMHdneHNIY1NMNy81aGRoenpWOXVqTVV1RExFZ1A5eXkwdnJhU0c4ZlF1?= =?utf-8?B?WHRnZUZHaDlVNHpyU0NlTjlsUkFuL0QzSzRxbGgvTEpLWE9ISFU1YS9pYnFY?= =?utf-8?B?YkRVb3padVdCUHRzY2FETk9Nenk4SEp4azFqNG9uaXR6T09sci9hWDlJTHc2?= =?utf-8?B?SFMvK0JzMVVTc2RlUHhHbmhZR3NicWd4ZHhDd1JKVElKWlN1NHg4UTYzWFN5?= =?utf-8?B?WGVyRHJjNHlRclR6bEhFSjVYMXdUSE1sNnlSNHN5YWo2eFN1SHV5TGVkU1BK?= =?utf-8?B?SzV2Z2FNbStUdlh3WEs3cXZpdGdlNVZiSmNXdENpbnhmbjJaN1d5V2JScEgw?= =?utf-8?B?dXNjQU1jU3NtUlR5UmdjdnlkbG1Nai9DRjZNRWRPVWM4cXBNTDZkbGpwbVU1?= =?utf-8?B?a0h0TmVYRU5Kak95YzVqZGdvc1dFUmh2b2k4QU9WSDhEdFlvVmY3ZEhaVFFD?= =?utf-8?Q?T5UOeqhYdtn6Py9g=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16cf878f-8e47-4ed5-9c00-08df2ec7831f X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2026 16:30:54.3846 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gSsp8dg4BvpgRBtF9Dx+axszxsHwpvmYSaswn/VpPA7l0jjYRH46/mpYr2sSnclbivhCqOCHiXwnFIlb+l/tLjG4WPn3K/NHc54AIC3tJOw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10683 From: Mario Casquero When vfio_device_get_region_info() fails in vfio_pci_load_rom(), the function returns without setting vdev->rom_read_failed to true, and without allocating vdev->rom. This leaves vdev->rom as NULL. andrey.drobyshev: This commit is cherry-picked as-is, with no modifications, from the upstream commit c822ecd80661. Signed-off-by: Mario Casquero Reviewed-by: Cédric Le Goater Link: https://lore.kernel.org/qemu-devel/20260602070857.356526-1-mcasquer@redhat.com Signed-off-by: Cédric Le Goater --- hw/vfio/pci.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index fa2ca0d779d..bea478d521f 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -1039,7 +1039,7 @@ static void vfio_update_msi(VFIOPCIDevice *vdev) } } -static void vfio_pci_load_rom(VFIOPCIDevice *vdev) +static bool vfio_pci_load_rom(VFIOPCIDevice *vdev) { VFIODevice *vbasedev = &vdev->vbasedev; struct vfio_region_info *reg_info = NULL; @@ -1053,7 +1053,7 @@ static void vfio_pci_load_rom(VFIOPCIDevice *vdev) if (ret != 0) { error_report("vfio: Error getting ROM info: %s", strerror(-ret)); - return; + return false; } trace_vfio_pci_load_rom(vbasedev->name, (unsigned long)reg_info->size, @@ -1064,12 +1064,11 @@ static void vfio_pci_load_rom(VFIOPCIDevice *vdev) vdev->rom_offset = reg_info->offset; if (!vdev->rom_size) { - vdev->rom_read_failed = true; error_report("vfio-pci: Cannot read device rom at %s", vbasedev->name); error_printf("Device option ROM contents are probably invalid " "(check dmesg).\nSkip option ROM probe with rombar=0, " "or load from file with romfile=\n"); - return; + return false; } vdev->rom = g_malloc(size); @@ -1125,6 +1124,8 @@ static void vfio_pci_load_rom(VFIOPCIDevice *vdev) data[6] = -csum; } } + + return true; } /* "Raw" read of underlying config space. */ @@ -1158,7 +1159,7 @@ static uint64_t vfio_rom_read(void *opaque, hwaddr addr, unsigned size) /* Load the ROM lazily when the guest tries to read it */ if (unlikely(!vdev->rom && !vdev->rom_read_failed)) { - vfio_pci_load_rom(vdev); + vdev->rom_read_failed = !vfio_pci_load_rom(vdev); } memcpy(&val, vdev->rom + addr, -- 2.47.1