From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11020079.outbound.protection.outlook.com [52.101.84.79]) by lore.virtuozzo.com (Postfix) with ESMTPS id C601D810EB for ; Tue, 3 Nov 2026 13:57:42 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JOuapmrkc8bVkQjswJJo4Kbc3h9mhYq5I7G9nDJlvUcH6PygkB2P9v69LJZpnEJb3SofPc+u/NMX4EDO3flh+EpivISS9WZEFClm6F7Si6HO7eGDZS2jrSrMu3rQcyEg3HxBfnQ9Dj61m72VI86tuvLMDG6XDJ9CXTqJhkpePUe/PAv4nCMb60p3vCfOgn1r8YmRqXxPZKgfeZ/v9XE2JAdtuOJmPHg+CHt7utfUAhQ8fmR+YXjy1uFETbvMx7dTosbzrsM5bnZgv+dsfxb3vRsikF8GEac2Ogz+a0uPKwzA5o6Qvjemh4PhkG0mXN/Jj9cOZwIWj41ZQ4Ubh2Pwdg== 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=MpGjSwWjB3iJFikeXqMRwuU0lLWKa4vaBLHNjxTkFYE04bvRiPuEIc+t28UHPeyzQKEGlqpAxGltzaZX49eCALsRIjKctqHlhSF6xDhc0WA+OXiY4wlUOeCG/jZ2vTVTnWbpuyDeFYgMxgt/dhPteJmIsKdHxRCVidFyHTYq6sLxowlO3KvgEkLWmKzq8hDeOzK9BZWXUGa7maj0c9YYKX21Iwk8cAX4R1d8uSfQB9RUWbEi6/yRzyIq2mWRrQYbqK0biO6eltGuw+w6sgZREhy2qkq9QizXva8Y6JZrcGp2i77pP67CYhT/SJMm3bzP/lCvMGIJ8XGX4CByMX+B9w== 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=z7033U8ubJopkt9jfMcg6I6m2HKmyG32+NBDyIOZefM8a8GGjJuGXGrlLfH7H9f/w1cC4/KmrPCZShVvoEXpuTKKVVpxQOS+nsVUcxWaO8/oV09hEuED9yrBdVSyqU8wkbnozIlQm7cEgbmVEtYvZjCWZIH6HbJRl6k+aXEtoNKpaK91Ad5X7kOzNl8oyMnAwj16YhswSgCSIZ0IiacedYzUuGPA/RFVLt/MAxUi+yufB8Am2CcUYZd9B6Tmu6nRINy5H8JOzrBJV48GEgdbm/MliVFVkAMnZwKASihXIzuPN3DFuo94/Cio2kZ5FB6XeLVvm4oRgQAoGHEMimszGQ== 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 MI7PR08MB039719.eurprd08.prod.outlook.com (2603:10a6:290:106::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Tue, 3 Nov 2026 13:57:41 +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.0569.011; Tue, 3 Nov 2026 13:57:41 +0000 From: Andrey Drobyshev Date: Tue, 03 Nov 2026 15:57:28 +0200 Subject: [PATCH QEMU HCI-8.1 v7 13/35] vfio/pci: Initialize rom_read_failed in vfio_pci_load_rom() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20261103-vfio_v1-v7-13-4467fdccbbe6@virtuozzo.com> References: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> In-Reply-To: <20261103-vfio_v1-v7-0-4467fdccbbe6@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI4PEPF00000153.AUTP296.PROD.OUTLOOK.COM (2603:10a6:808:1::86f) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|MI7PR08MB039719:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f9b9f7d-f6b9-4dd2-9d47-08df39b2665e X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-Transport-Rules-Loop: 1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|52116014|376014|1800799024|261021133027099003|261021135927099003|261021123027099003|261022075727099003|261022113327099003|261022105027099003|261022115727099003|261021130227099003|261021121427099003|261009223027099003|261026130827099003|261028144727099003|261026140227099003|261026121527099003|261026135527099003|38350700014|10067099003|261102123227099003|5113699003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: lYaqtoCEBaCDi4wT6xPNizij+V1ShgWi4AroOdLy2C7XD4tJxJDJCSE5xwOBY9H8XLKZ9PsHIQ0XCl1mmOcCCNoMi6oGVZxzu07l9/OYsifiKmZ0bwQfHgPxTYsIDsrBphPEWKe5wMxY4XjT4dW8fSLyOjHaDwriYJxY42biKrnJQWrsCcK7GTRSgxka/H9NAmZruMdApNlmf1JIgzHr7Uwzg+adJtxSca4arZT7DaGc4+Rt7woI3N04MaKFXQBriU3W9fo3zPRO10u/zQGQv9HUBqFYPtXqGnAEsrqiMNFTs9vzFqjNZ8/nyjdSkCCApudeX7tYEJJCJvyUU9PTbmBGNFTW+VZgOXp5o0p6EmaveKvRGVdRry5npQI34w1pOPe3mDoMlFatzbGX3GkqHs3EywRkXLYJF0MWa+fom7Egx6YRTfcoXcMBN76qt/BLA6PFQCDTWZWH8MRet+gL5zVRTT69acQEx3co4TImbtcxnjxa4Q6H2rf3HEP7a3mNbJ+j6KV24zSdWPw4wiARwNZ9yJbxIcvjk5x3L3VCQS5q9onFvXdFIv5Lqb8lKAFwHDk6tM6Wx1a2XiWl+wf7P/Jxbgjgr/joOjhAsseGILumFcm1iWGGPPaQfyIxtbJI9uPqRxJ36Ct6LzSSznEKX2r39ydgueYDG8qKolHZ3j3DTJWKCB1MvHCkspU1CwWq 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)(366016)(52116014)(376014)(1800799024)(261021133027099003)(261021135927099003)(261021123027099003)(261022075727099003)(261022113327099003)(261022105027099003)(261022115727099003)(261021130227099003)(261021121427099003)(261009223027099003)(261026130827099003)(261028144727099003)(261026140227099003)(261026121527099003)(261026135527099003)(38350700014)(10067099003)(261102123227099003)(5113699003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y1ZyTHRZSGhuWHhvVk8yMTY4eEtXS0NmTzJkQVo3UzFVZlBYUnVFUlRPYVJW?= =?utf-8?B?eVQzZnZNUmlGL0JadnoxWk0vMDFtSFJYMC9QZWt6U0JlWkowanA0SWRoZkJG?= =?utf-8?B?S2l1emtuQ2liRU5HSnhYNkZIam8zS2tVLzZkTGYwRW41a0M5eVlCMHlncnd2?= =?utf-8?B?Vy9kTm5yMWZDb280dXRsWlEwL1BEVGYwamk2WjZnV0diZDFQYnlpVjRaOTFj?= =?utf-8?B?TUlaeWUrTzI1eWpsV1NpMnptZjc1czQwQzFPQWhQQjZ1OVdNYklVSGRFTWJF?= =?utf-8?B?Q0hjekpNNWdDREQ2WkdrVFYybjZVWUZTcStRREV4dzNkbmxXcDVxMmZKQmVL?= =?utf-8?B?UzU1c25tUXY4UkJaNW03SGNGd3ZXM25tbVduV0dMVlQ5ZFdxWHpOVEJPb2pk?= =?utf-8?B?Q0pvTWo5QWg5YkYyeVpkZ1ByMS92TU9WdDNHQldaTEV3ZkJ0Sm85cE9Mckg3?= =?utf-8?B?Q3FLWVZVRlZsU1RMM3pQMmhDQTZvYWVBSjNabjdMY0tvYU1sblJCaGtIeGt5?= =?utf-8?B?K091UUVWTDR1L2k2QnU0TUtXSnA1bFNmNEVPMVAra3Y0cGVEV0hTRzZVbTh4?= =?utf-8?B?WkR1VDhrTUJ0SWpudjBxVWcxaXFCM3BBOVNvN25OUzNYeE9zMjd0UW5BdFht?= =?utf-8?B?ZDdYUzNuY2tOR3cwMCtoUWpZaEFHbVFUcHpzTTFmVEpLb2Y0bG1yUStXOEZW?= =?utf-8?B?Z2U5cmFRQVc2SDdsV2wwalRCd2l5bnZGVUdsM0FXeENWZ3pnVit5Zi9zVHVa?= =?utf-8?B?bFk3d0RkbmpMMmprWHhkSkxBaXUrQ3YzMVNza0pRUWlPOGRQUXY1alVRSk5Y?= =?utf-8?B?U1Riek5Yc0M5cHJxdlowTzlMaFlKZU5WaGNCOEthRnZBRVNxbXp3SW9LZlBU?= =?utf-8?B?ckJQdDA2TmFOKytMcVVVNkt5T1E3WEp1Vmo4T2NiVFBEQlpSeE4zUFdEUnVR?= =?utf-8?B?VVZqRFRZdE5EK3hrUTFvT1ZSZCtKQWx6Q1FhMVZHa3NnSkNVVEQwM3RrdHVx?= =?utf-8?B?Y3VodXdwWFE2SVE0Um1tTlhmVXZyOVYzTjludUJxNjRLd0lYcFFxTE1xOE5H?= =?utf-8?B?M2NqWm9TSUtTbXJVbW9FclVZV1BnZ01kaHUvVVErZ1Fsam0xRzBpUStlRHBj?= =?utf-8?B?WUFFcU1vM3BsbHRVeURQc1hQNDVLcjcrSWMvczdpeWhVc2NuYVo1ellESlZQ?= =?utf-8?B?ellZSUNMcEt3RWk3Z0UxdzJ2VWt3QmNDWURUV2VQUDVCT2pEVGRhSjhmejQ1?= =?utf-8?B?eGVZb05qYlJTQkJsTkVsQ0tVWjB0M21qQTRMVWVNcnpSVU5mSDc4NEtsTTZX?= =?utf-8?B?alFPOG5jbzVYZ1lKRUtWUHdRaXNQYTM2NzBrbUpaa2xuQ3VlSXp6K2VhaTNX?= =?utf-8?B?cU83SnhwMzRTMUxndW5scW9CL3VyL1I5TGxUaGVTdUhNbHBTRzVEekRFd1d2?= =?utf-8?B?Q21uR2V1c2IrN1JGV0JheENQMm04ZVU5QnlKWVVKRDJiak8vMVRGZnZwOFVY?= =?utf-8?B?cWVTbW1ZVmRPMm1sSUdtWXE2aTRjN3JXVXBoajNIUlorby9GTkI2U3JYeHVi?= =?utf-8?B?TzIzVFBaNVNMSVR5NHNybkZIM0lHc00wcEE0KzFCU0twajJldWsyZHdGcksw?= =?utf-8?B?UzlvYmJ1UVp1WS9XWnp0blhXWnVMcUpBSkNCRTMrU2Ywd3JSNDJNbHVxZ3RE?= =?utf-8?B?R29lTzhBckxna0dGSEdhNVI5Q25vdG9BUTllTzhDeENhOGRDbUsxd1NQT1Uv?= =?utf-8?B?NG9IaElJSmU5S25qeVhHZ1pQb1M4YnRWQ3pYdUxsV2ZMRGtCQnRyODFOUnpT?= =?utf-8?B?OHM4ODdaTHZPYzdvZGtraC93VTA0QVhlWWdHNWYxdXNZSjVHV0dOREJyZjJk?= =?utf-8?B?WitpMmZHQ0RBckhPVXB4Y1pHZmFBVDl1d2gwaUU3VjJHbTFLanNTWVlwY1cv?= =?utf-8?B?OElJNk8vTmE0RWgyMEt4M01nTjZKTk5nb2NMM2hpdEEwaS9qQXFSNkx2UnZL?= =?utf-8?B?Lzl4ckJyWFlyc0IzUjRkNUJERkZZWi8xa3B4dEplNGRUOTJibmxkQWVUK3Rl?= =?utf-8?B?MWI5SXZYVDBLY3ZScURQUVVzTkoyUG56L2FjR0FwdXV3RmhMUVlYSkliODR0?= =?utf-8?B?NHl0bnpuVGpydEZFYXhJTXFJTUYweGw1dGw3anhreGlmSU1WczhtcFlLb0xl?= =?utf-8?B?c1hXVkNxZVhKbDV5eUQwNGlHZlZJRTNQZFk1eStiZE5HSWFaYnFIaEVwVlFI?= =?utf-8?B?R2FMUjVzUDQ4cmdnTDBKdEdKZmZHSmd3ZS9DNzIwVE9XTklhZTVieG54SjZN?= =?utf-8?B?bzd3VTFRMFB5L3U1aHdhdkdvSmh5WjMwYmZPSWVTOXNuZ25MQjRpcXlkaStL?= =?utf-8?Q?9qdspNFDuEn/5FrE=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f9b9f7d-f6b9-4dd2-9d47-08df39b2665e X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2026 13:57:29.5885 (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: pWWHy/W2mOYpGacVUhQkSPAuVFMAyCQGhs64uWpo4C/DAdFLs72l+L8x87LvtjGALVJ0um40C5aKyUTpZ3P/3WsyTCSS3yMzshJFseaKZYo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MI7PR08MB039719 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