From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11023092.outbound.protection.outlook.com [52.101.72.92]) by lore.virtuozzo.com (Postfix) with ESMTPS id 9D60C80B12 for ; Fri, 16 Oct 2026 15:26:14 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Zu6KJJRp3RKZ3cWXp2/Jz1oyHxCcWo+k7StNrNI9ooEOARouyIOgpoMOZofv1kZGn8dE0rFgRdV5Gbt+Ds80GtFxfV07xdQEDBaPlB9jI4SlqBxFU/PW/zyUogEvlWGGC00cr67UT1mCg8OW++yjzh8TtU1+dB8TAI2Lcj910ntDCl1Fn3wN65RAdy6Hh8SoVuNOMKew/pVuljXPeeh6zigOpAF4ReY7VOl09nJs5X1IRCCA30XUOYgdJ353uj5Fp3fNEqzbjwXY3KZQ5vgZbKyJhnkpfqpeHb2VING77zl5dp4hz3EY/gtTVZEII7toU8Mge2XsZOpB7DZ+ShbkCw== 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=flVqfnOuYDr5g07tPEaS4K1bLyXUJHD55mvsQNiVNq3d92yrziijc6TXLZRvk9Q2jTeFe1P2lnJbD2OcAg7yjhCOIhcXbKZIGMu0gy1fHQ+7347cxyg+Ji0kfRPVwL8DPD6wNxCiqEZgR6U2Z5sEeW1zQqfFCm+xlYL9LaR98iZXxXN0wffoXSuyf1lyAWvVpyZC3U6ctFXCyrsjSvV6n76RifTG7ZTahbWnF0DSNnivR7hIde1BTL0CL9esxEfvDieoneoZBu1FER0tXIY3rcCyHa1cNs9NAOa5rQ7cLoRKpgyXZifN/hWg6Lt2VBtgFmDHm5eGbfdrCz9u0mVXNg== 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=0gg3V5cK5QZbc57ROwrvKn9yA91FgdHxTw4QEfA47LFkkAw52+y+QDNd5Pd0dy2MePF0VAhYivfXWPpGAtB9UxOfnFG1Js15E10+RvGwkTG6QFPZE08C7rApiUimebVqLKWTR/2mArTwigyqy1Y8Xvnu9sb4uZM3f2Tns0dZe8VNBqb+934eoAJHOjmPf5SwXBXQ5nvHsUUDqbZc+ZHTU2uAS6jdJ8TRYvfUWtXtxkoRy7KSQTISIP9sHq8zEbV1iXdNY7Xc2Qr68BRMErc+NJvwS4QDngzqmXjP602af2blkDWlijZ0dz2wAQf7DClN1efGoWWYXNAXnXg6mKaqoA== 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 DU0PR08MB8907.eurprd08.prod.outlook.com (2603:10a6:10:47f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.9; Fri, 16 Oct 2026 15:26:13 +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.006; Fri, 16 Oct 2026 15:26:12 +0000 From: Andrey Drobyshev Date: Fri, 16 Oct 2026 18:26:06 +0300 Subject: [PATCH QEMU HCI-8.1 v3 08/28] vfio/pci: Initialize rom_read_failed in vfio_pci_load_rom() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20261016-vfio_v1-v3-8-47487cb5a8e5@virtuozzo.com> References: <20261016-vfio_v1-v3-0-47487cb5a8e5@virtuozzo.com> In-Reply-To: <20261016-vfio_v1-v3-0-47487cb5a8e5@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR10CA0088.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:803:28::17) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DU0PR08MB8907:EE_ X-MS-Office365-Filtering-Correlation-Id: e3ab91ee-baef-49a6-c44f-08df2b99cd75 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|23010399003|52116014|1800799024|366016|376014|5113699003|18002099003|22082099003|10067099003|261009223027099003|56012099006|38350700014; X-Microsoft-Antispam-Message-Info: I2wmmuzRFkGVIe2tEAbmfUFZVGV1YNLKk9mgg/IWIUM0PntPnwtJCTfQDbFSKP+6rQH4Ebf9ZEDjEdPzwo0E4o97Eayz5zWUMxX3Sx4D3boWYf8vfrxmFB0aPLlb4JctlcP+4bwRVUZt7jXE8W+Uu1ezENJE9OMQ5NRsyKmZLX5DPNHU0u+e/Sjv8L9iAa1ENpdpdJlCgZkNfrqUAw4pG9jKTPiTNTknucL83gAbj27T8eV5eYLWPdowku3zpvuur6eQRWUrBQEVmo+7pc21etA+ABecqO+WqsW3InkBIBd+dI8B+4VdndYe8Ke85XvqiTcv0y8XACyTOW3Cb4hHels3VHO9mjgUvSvWwByXA+k/qmK2S7S+MqiYLznd9el1PEiiQysNPH23Qe7EMZ2QSBbASsbzZsMghP32rb/tes9l9dKqgx7ESk6PGsTXiv1NWuF4xPeQd7ZfS1iDnNhj4GTzth7ZwCP9MzM9Oo+N8gnOycIXY1JwO7bDFEfKXpSAK/uzFwJxMdooWw0DW+8nPkJdC4W4XSy2YGtk7Nh3iZUPpGkh8KK/0EfReUnzfEVi2GC0dIJ7Yc2dxUYD0y9DSq75yFO4PqujK4EoxiJxtxbaRv+cu07itgVmDAmPxs91kIosndpM4vcvjgIXAWja2Ao5qIFoq7KXE13A53KSE/E= 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)(23010399003)(52116014)(1800799024)(366016)(376014)(5113699003)(18002099003)(22082099003)(10067099003)(261009223027099003)(56012099006)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MkRFTXFzRzkzMXVPYllRbW82WWxuT3h0MzlnRFpidUp5ZnZqdUdJWlBqaDVS?= =?utf-8?B?Yk9EeEhzcWNUZW5ibDBXNUZqRFp4eEZwOVlaYVZ5Y2xtVnI1Q0hFT1VpSGxB?= =?utf-8?B?QW1RQXpFRW9xQnFUelNOaEs1a0dFVG4rQisyWUowcC9wQWFWSmNlR0V4d1kr?= =?utf-8?B?YmhvQnF5dTdNdGl1S1dLN3Awa2JzMUFPRDRnd1ZmNzFoQkx2MUg0SW45MHcr?= =?utf-8?B?cStWMG5jQmxsQVVWV0RzREc4MDhUdXR6L2IxTTd1NXhML3h4S1RtM1ZXcHho?= =?utf-8?B?cVVpRUEzWVBOSmI1QnY3aks4aWhnZWU2VEtGL1Jxd2RNMVZFdms4NDNSVmN2?= =?utf-8?B?UFJqZ1h5RThQNHVHNERQMWM5L3N2dW9wSCsvYnRobFhqOHI2YklHZGduUXVa?= =?utf-8?B?TUFVLzIyQk5CUDZraTVTRzExWDlKeldCbUZlU3E0Q0s0Vk10clR2VEpJemZa?= =?utf-8?B?MnRQSGx3UWlwTm9iTVQ2WW1NVlF2elpIdVZVU1VpQXpDRDd4TUxFNUV1VGVS?= =?utf-8?B?R25QSHpEc293dDZ2b3BNNHViM2N1c1ZSbW13bkNra3ZVbkVUVjRDU2ZmYVcz?= =?utf-8?B?QjQ1Q3hGTVB0bWR3NlczcndwbW90LytDdFF2SHRIcXUvOWdBSEMvSkJqWGcr?= =?utf-8?B?T3piU0N0QnM3TnFYM1YrS3ZGbDVsREcweTd2SGZjT20wc09BMmI3eG93V0F5?= =?utf-8?B?MHorT3NxcmtkRllIQWo0WndpemJlSnJSL0pLdk5tb0U0UXdicG9FMlM0RmVY?= =?utf-8?B?OU56dDlYZmtIRXpPbUx3UDUwM1d5WXYweTRhdXpqVHFKNHVidlRWWkxIRVdH?= =?utf-8?B?UWRxN2hVazZFZ0l6NlB6VEFNRVhHRldpTG5qTDkwaCthbE43cUlxREQ5cElM?= =?utf-8?B?eFhhZlBqcWhTeWhyNi8zZk12T1MxYkxFTVgxaE1ITjFibWRLVnFWUCtBZXpa?= =?utf-8?B?K2QzUm1NcFAzRWtSV01KTXFIdVRzYWpXbDh3Mk02ckx0SUg1RXNxU3N6dERm?= =?utf-8?B?dllBdnBtR2Fhdk5TUWx4UjZhNVhjSExyaCttek11ZWVvLzBHYnl0ZkdMRHAz?= =?utf-8?B?ei9NSFhEekt2TVE0YzVVN1ZsaVZiMmxLaGw5QnlaTFVFNmhDaFphWWpkRVZP?= =?utf-8?B?WTdiTFpXcE1oT1BxVlRwS1FjR0pxRmU2QlZUWFR0VTgybG53NExQeFFDanRG?= =?utf-8?B?YnR0cXJtbnFWYVpxaW9JR0d2b241QzlQaTVaVDI1QWtGaHdaOXk3RGFsUmY3?= =?utf-8?B?N1kyU0dmMUV5UTNTZ1JmUGwvNi95L0tzNkk3OThFNVlmS3k4c3h5MlFWdXI1?= =?utf-8?B?M0J1NEM2ZzZ4QlRoT1ZtNmFKZHlBNVBmQzdONmJ3b2x6a2NTTlJ2WU1ub1l4?= =?utf-8?B?T3ZTbFNRVVdjbGJtaWhmYWxDMG9Uc0Rsd3c4L0JxeStGVnp1MkJvMUIrZFND?= =?utf-8?B?NDYydjVmZzFVQ245Z1dMcmR6SkpiWFVza29DVjNyTG5UTUVYK1BlOHB4UlNw?= =?utf-8?B?K1o2aERydzRHQ2t2OHd4dURJZnlJS0FBYVlFbnBxakZvWU5Mck9KSVE4ZVc1?= =?utf-8?B?WkxzcC8xeWk5dTFZaGlnM2R6LzNXVWJpRzJIRk5wVm9xY2VKODFGZGpzazZZ?= =?utf-8?B?L2NBNDRDNWJ1M1R0NmNVdzhSRHdKdVJ4aXRCckUxUXRPZDJqOEYwT29uaEZ4?= =?utf-8?B?VGhGMmVtdURjOG11cjVORnB6cWQ0bUZnaFFMRzJMbyt5cnhJd1VaZlpmVktR?= =?utf-8?B?NXlSNG5vVm9RNVZUWldWTGhUNUpLT3dvaWxpTmY3bVViMEJFNnVkZzBqZ1lR?= =?utf-8?B?a3NGWWVTNWQvTmNBUWVNU0ZUNEl6azhLUjFzNjk3eS9qWmVMYXl2MGRDNW5V?= =?utf-8?B?ZzE5c2p4a1hLWG5yb2VOU2VvQzBydENKblhBanEreGppRDRGd3JMdjF1cmRF?= =?utf-8?B?SmZraExza09vanVrQjg3endBb0FlRmxsNFViSCs0dzR6V1BpQWVCNFJYTmUz?= =?utf-8?B?T3pHVWtJUmlTQ1F1SmF3aFRJVVpYUWJDRXBoZ2tVaW9tU3BYMUVNZGtObk5Q?= =?utf-8?B?dUtiSlZlTGtDeHhiL1hzSjRacjY5bjRnSC9IVU5MZ1lPbDVaUGVtMkdScmhU?= =?utf-8?B?eW1FcisvSUF3czdRSUNzRUlTaENQN3htM2VyT3VVK3NSYm5pWmhoSDRucSsy?= =?utf-8?B?MTBPekxWbnZSMUdvbEFya05sNmkzM0FVd3NkejYwQkJBand2UEpWVTBvRm1H?= =?utf-8?B?bFFlcHdRWmtMVDdaN1JuUTVNbEMyL1JUTzBGVDNhL1BDekhHRmxpc0V0R1hW?= =?utf-8?B?V0pzNUczMU91S3Y4eURCdmw4L0dzK0NSbTd1TnJmNGRRSUNiV2ppWVFXTTNS?= =?utf-8?Q?heYcVn0uscVk+utg=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3ab91ee-baef-49a6-c44f-08df2b99cd75 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2026 15:26:08.8328 (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: yiiXyEPG8+B3JtwhXM7b4WX7EjuXKPmJtsrq2f/FY0TkLHbO3zb3BbOoofmN0ITIQmUHacGi8jVSlfWnBnykJ4L3TOvXwsSllV+ykFWfeMQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8907 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