From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11023133.outbound.protection.outlook.com [40.107.159.133]) by lore.virtuozzo.com (Postfix) with ESMTPS id 2A14680C27 for ; Fri, 23 Oct 2026 16:54:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Rv8Ou/2jR7jIqs1my1VD1K6o1zn6sNmRlciyhcyF1tpdA782UXjNXRdyDfmGJByg3od+DFrAK8vU8Mwj3E8m1cROuh0mUYem9+zVuMZ614z+ICucq4bsKhuiE14dbJisWuPSgJMT4H2Up6fwru68qnfjbC0FTxT0126AWVa/TibhunK19BPcllTCmx3d5s7Pbu92v/Tj/joPgwPgdUYi2y5y7Sh9ZC/Fd46IQ/WeXzouReOUgxeDQU/qBdvh8uuFgQ0+NNWG2Ol/F4uDg+i+7KHj6SmM+IJUnXB4h84DZ82jLSEMUrdya5gUOm5BRajnUIyxSmkARD7C8TJzTUSCaw== 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=iTRuN1PT/Ed3qXd9frFVQgbAj426ftiMr/GgdqpBcNnWmHRue0ckvD4t5dSVK2VCRrsqj+0wcEI8HrBEV9xa7eSfC0dtWT5xUE7u5T7apRWu9H8avFrHGi9/QcCOXqbtAwgkhXGpAcwfvjwBZcXci7n2PjHKWd9b6vXh4JTNl51B6W94JWXvrhDWAI1xDOoa2KFhaOFR4DlX42ELLdUOuBCn6+rXprqObH4GEmQzlsUjlBprRXYeBu4y5Lfwt9/24KxkbpqtQN6NPOoy4bAq0V0R6mtYrbp5Fu8eZuggsUEExwYdxcFQeEycghGQBQga72nNY+fgb9OaIfBmBRiznw== 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=gSYWGGB2tG3/YkCfyLgt4nkYze4MTsjJTNloFxcCQhjiRF5oNPi0ioDrBKKTF7BvsQKQBubZQ2HCLalILqhxshfAX9h2ZLtYUfEXKYZ3BTEfVelQFE4xMXljuclJxyzzFkJSF60VWlYnmAHYlU7Q1RqTxfa0hVvy9ImuniZgwvLPhD6M71Fxph9i+WpyGhqQZbSQ8HJZQGTdyBS0RJpNSfknS66DfjOFd5WZWuM0plc+dZNV+XQci6ySoH5P8+A7quI3bcMMgxMUYsphNrCKLLUFlxwh3A+41RNHmKuRh6KAhmcVaLyHJwoFsUF/BtYDM3mqO6tjvkLmnHMIm7jr6Q== 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 DU4PR08MB11747.eurprd08.prod.outlook.com (2603:10a6:10:646::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.19; Fri, 23 Oct 2026 16:54:39 +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.017; Fri, 23 Oct 2026 16:54:39 +0000 From: Andrey Drobyshev Date: Fri, 23 Oct 2026 19:53:49 +0300 Subject: [PATCH QEMU HCI-8.1 v5 12/36] vfio/pci: Initialize rom_read_failed in vfio_pci_load_rom() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20261023-vfio_v1-v5-12-ba0bf3c6d122@virtuozzo.com> References: <20261023-vfio_v1-v5-0-ba0bf3c6d122@virtuozzo.com> In-Reply-To: <20261023-vfio_v1-v5-0-ba0bf3c6d122@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR0902CA0027.eurprd09.prod.outlook.com (2603:10a6:802:1::16) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DU4PR08MB11747:EE_ X-MS-Office365-Filtering-Correlation-Id: 8e62c2ef-ee54-4d80-96a7-08df31264d12 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|366016|1800799024|23010399003|376014|52116014|5113699003|22082099003|18002099003|38350700014|10067099003|261009223027099003|261022105027099003|261021133027099003|261022075727099003|261021121427099003|261022113327099003|261022115727099003|261021135927099003|261021130227099003|261021123027099003|56012099006; X-Microsoft-Antispam-Message-Info: 7cn3f3UqH0+YA6Oo0V2gMilSYB1sm3mShRH0NapK1XJdns3h9JriBkws8Gn4p9o+YFyPYg+J0wc2MlSgtU7MeXtdQGcZvRY3aFOXx0V3mVKsLuT9L2bUra+XLPuMbtC685pv2Rp7ck/Q3hlWguRhzoJQbVr3gsYz9BleQ+0wOITG6kPptwBzTLJXEekzGA4HxUeD3+9Fm7L1qxx2L+YaEuQPVJwvIbGd5/76qrbOwMargTuXTRZzmedMmJ6kYizCMljJjMAu+75GEeSqnI1m7YcuNrvcJipmO0bjj4z7slSVYPpKkUHto5so1QuLX3UHl1jb6w4LoYzfD4HFV+XcdAqP9jhMiBcgRqVYky9ztv/aEizWiK7GOroXKjagjJiFap3QUNpw287h2hLmr0MggN+Lp+AVlzxwotiSss8EfQso0UlxC7IuFP08DYLWPA1udpEjKmTeTOk+HxKst83a38TAOd98ZHGaY/jxibAycspgHNHNtiWU7n9W2Un5y6xME1Bw4acJ/5IVR8XmNHsqxc2nrW3DwjHBrDWKsCLxLyM2lTQgolInGzfLV/G3hDqmnu2m+HueglZ+KjWhfR/xuWZrwA07groznsdF+9wMNaPk+Yl6ZltmySDAWgXW+/oW9fs7q0/uLO8h1y//xnCfluljk5CMmgz2G3Khr2j4vww= 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)(366016)(1800799024)(23010399003)(376014)(52116014)(5113699003)(22082099003)(18002099003)(38350700014)(10067099003)(261009223027099003)(261022105027099003)(261021133027099003)(261022075727099003)(261021121427099003)(261022113327099003)(261022115727099003)(261021135927099003)(261021130227099003)(261021123027099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cEFMeXNNc3JKNmZFTlRiSVg3cVhJKzF0bVlZcnJ0eHFud2VXQTZmclNjZ3JD?= =?utf-8?B?L28yY2l4UVZiRGNqNUt6OXRxS0ZZcW5ZSFhaVC9ydnIraW43K2RDZjJLK3gr?= =?utf-8?B?emFrVms5dTN1V25lbzF2Y2ErcHlodUZLalBmRGllYzJKejdyVGd4TnlsYmRD?= =?utf-8?B?WDlNYWdFditWbHlMY0pLSkpCZTIvVVMyNHhEdzd1bmhkMmhuZVp5TVUxaHc1?= =?utf-8?B?bS8yb3NPSW5obk5IZytEeFNmemkvS0hodmNkVFhXYi95SUV5dlR1RjhNalhu?= =?utf-8?B?YVNUUjBvNDJlTW83R2tMZmpmMUY3TWtQUDB3dnJHVHdEaGNaVlBwTDllQ1ZF?= =?utf-8?B?bmV4MmFsN2FUbVhlUU1leHNKaCtEZEFzZlc1UlFCZmxvS1BhNFFkZVVwbWNa?= =?utf-8?B?STc4ZE9LL1c3VTh0L041Z0FUcXNQS0RLeU5lM3lGeitqeHJtOHo0VThIWkoy?= =?utf-8?B?MTJxV2xid2wrd2JDV1hVSEx4dzhydTRYaXo2RVN5Ti9qa0VzdWgrVW10aUN5?= =?utf-8?B?UHZxVXQyMUs5T0o1L2Z5K21BR3psNStrRTJBcnJKbDFPV2drVG9acmFNclNm?= =?utf-8?B?c0FYVExTcm95SnRZQzY1c3BUT3hIVjFNWElHczMvTFNHUmFwck1ZWHNWY00x?= =?utf-8?B?Ynd2eGJoT2ZrQXdhWWdSaDJxQ2xRcFpzZEZxU0JxamxMM2Vxdkh2MjdmYThC?= =?utf-8?B?UXJJY3ZpeElsRjJ2Rk9mVTc2QlhNVkJwVmZIZlpGRlAydGdGN0x0alZkdFFl?= =?utf-8?B?RDFlS2lOYWJ3RW95eE15a1lhejhqYjhtUkJMQkowRzZqLytvRkhPSWQzcjNB?= =?utf-8?B?RURZd0pld2xVUEY2eTRQTzRDZCtuMnVJYWRIdFdXdEIyZTlqVkN2ZjEra3lX?= =?utf-8?B?ZlF6OXdnLzFWUlkxZ0NaQUVDZjVvTDk1dkFPMmVIaFVhMzVFNHE1aU5vK0t5?= =?utf-8?B?d0dCdytuR1FmZVdKMXYzdkJlcXRsTkZJbTUwYWlEK0VwM01GSmhlOUdjYk84?= =?utf-8?B?Zk1MRHNxcmh5UUpPYzYyR3VRWGY4N2ora0MvUHB2Y3FrT284RmJDdit3Z3ox?= =?utf-8?B?YlFKbU85SEZaaXkzY1dYa0JKMEQzYTYrOFZtaEc3UFVGblBHTFVaU09lV0wy?= =?utf-8?B?aWJ6bUdRc01EbmYxN3ZxYjVLK3d6R1U5VUp1T212bzlaajY4ejdjZFlhZkcv?= =?utf-8?B?QUxSQ3JleTFWckhmN2ZYMUVwNFY2cS92dUIwZFF4eEwvZmlLV0p1NCtVYlg3?= =?utf-8?B?bzFwYnRDZFUxTTNSckVvV1VGVUNRY0EzK0tTbXcxR1pHUTBMK003VmRFK0FG?= =?utf-8?B?WStvUG1COERaWWxuQkJOWTB6ZFdtemZHdGZmSEhDY2ZhdGl0NVVibU11QkRF?= =?utf-8?B?NGdtR2tHSWtLUFJxMElvc1c5Q1N4czVjT2xBOStNL1EzQllMdW5uNnpXbnJz?= =?utf-8?B?eU1INTVuRDJqTy9JRHJubEpTNXZkRk1PNFk1bE9SdmQ2NGc0OVpmTW0yUC9P?= =?utf-8?B?TXI5Rms5MFdMdUY1NEVtUGtDR1BzNWIzZzJYMUFDNjl1K1dLcXA3TnhRY2tB?= =?utf-8?B?Z0pwTXl4QWxSSEJ0VEhrUHQ0QUVZR1c4eUhQS29RWWlNMGN5ZDREZGVaYXBH?= =?utf-8?B?Q1pPT1NDOUN0VXdwYWVEMFpwaDBzdEhWclpuZFllZnBmbzZPZTU3WkVvUmVX?= =?utf-8?B?OG1BMEFHejNveDdJRDMzTDdYcElTOEV6S0pCSDJuR1NEQ2hlTTFYUVRFVjB4?= =?utf-8?B?SHl1VU12a3J0WUdNRHlWQW5oaEJ0T0ZiMXJPOGQveU5Ed3Y5KzRWa2pYRll0?= =?utf-8?B?Z0ZRRkZIV3AzbDBSdUZObVI5WldrRmZGZDhxL0lSbGdNcU1GdWcrZHZkUmZq?= =?utf-8?B?MUc1YURJYlhUbFdvdEJSdEkyWmJnZTJNT2E4MHY3dWlJZGkrYjNrZi82cXgx?= =?utf-8?B?NjhFdENpOWczT3FKODkrTW1SVDk4ZTQ3YjJUWWtBQTgyL2tpbDAwbXhGNVEv?= =?utf-8?B?QnVTNllVdU9GaVJmam1KcElvaUpRc1hXT21zMkxxSFlCTjJSWU9qcXZhNmxl?= =?utf-8?B?T284ODV6WXFndWdYaGk1c3FpSWxRa3NRY2xsM2hGKzhldFRzeE9zeG5JaDJo?= =?utf-8?B?UnA5Z0gzZW45ODZzT3V6MTByRW5FdllWUGtHcmQzdW9WREgrTGlHK29zWnJZ?= =?utf-8?B?Y0FWdkdSci83VGtlUGdRS2FJWk94TEVuT3JzSHgvWEI4c3U4ZFdOazcyc0N4?= =?utf-8?B?VkdSeFN6ckdhbmlQNkNOZlppZWhNaFpOTUV0V0RUbEhScGRIMnhsNDV3WTF1?= =?utf-8?B?WUhVTGs1bHo4MEs3bFlQSVBJdEtnL2FuRExnK0lkZjFEeW54NkJKV2RDWm5T?= =?utf-8?Q?b/ZRT4ubsStlUJGQ=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e62c2ef-ee54-4d80-96a7-08df31264d12 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2026 16:54:28.6805 (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: xAoA/RvJjR6l+ybUiIdm4ZN83VSX+t3cLUvUrBRKVQrmesVU8PkbJNwfagJuVw+lmCJIitrB2kW39INMOqazkoHHyUbx5b7jRyxXZ2P9sL4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR08MB11747 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