From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11020085.outbound.protection.outlook.com [52.101.84.85]) by lore.virtuozzo.com (Postfix) with ESMTPS id 6C4488109B for ; Mon, 2 Nov 2026 10:36:31 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XbFsOL4UcV/MUlmLQCfBn5vATUtM+D+ZAW5RR0maKQTYIehwMW8u0RbLvm4oOqllE/3pncne7KHq0yj1qCNkIYU7U1kYnjhH5yipYa8sNw5s0zPHgJPV+OV/npAGIuaQ0W9kMayEMVn/dMOfGsdjRNuSjfMr3HmKDymAVpZdi4LGPS+QwqvQAVRe9UwozdxGYomTn9fctQfxAB5DlNdmrvM9XDFauadXQiCu7OOcWKry6m2F+e0SO9vsVdmICs2Iz+bLbOaJ5pzdbUNSfGt/oIHO96flYA2CAwaaxxc7y7OJcDjxlQl4GP5+G6q3ySjRYYbHUYOMrsmlN0w0lHbhRw== 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=EU1l24Y/xxCFguv7g/v6sUSDmE+i2EY8p8HHJUSYp0169z1lNIEuZpvSeWfP1YfZo5CGkSKcs/ByW/GPLsttOxY6U2ORBLgKFkjGfJoTk9QxAk0Bb7yfJVnuuSW98jWPWL+0GcD/pgPd4ug80/Xpb4l9yrmzG/pwYE7q9XEB49C4mj+BaRpCnrLB1BL/7/oMJdgC7UNx7C7NCsX5Ko/Zu8/9FvTiV5o3uA8kFcRA7Nu9WjkAY22+nwL0pemWJlzEw4UDPrQFNWFhUt/PTtVZeQxjPyAhTjrxnQqiGrd8+HtccuIyrpHPFxtXyjc0fwTSVlisipVTEPCDNRT8kJNJjQ== 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=pEgx5br2m244G1DWnwXRIXFF9aTLY4VZJf7JkRHy3u5E1mvAp2gTGYQvJ8n1o+26RxHnBsEgzGmwGCubu7QvthSAEa4M9o+xsfT5s/3jy8kzx8jufyhkIe6SRnCBTvfTE0a/2i+jT6VxmLXC0g4hGvBKKvYwNB6x713prWicrqAAAoCCrDwh1Xux8rwx3PeKm73vrWVqsDPv8eqOUvdsJv1OWWVAC+MPZlWACMpEQETnfWIgkYQN6Y+FE1ib/4mtzHdvxrpMq829cuXxohnaKBGsUXGBNvcndyaw1r4ttSdoeIni187qfbpgYWknOgTb4hNkMlDsblloXF23JE6i8Q== 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 DB4PR08MB8199.eurprd08.prod.outlook.com (2603:10a6:10:381::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.12; Mon, 2 Nov 2026 10:36:29 +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; Mon, 2 Nov 2026 10:36:29 +0000 From: Andrey Drobyshev Date: Mon, 02 Nov 2026 12:36:27 +0200 Subject: [PATCH QEMU HCI-8.1 v6 12/34] vfio/pci: Initialize rom_read_failed in vfio_pci_load_rom() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20261102-vfio_v1-v6-12-9bc7cabc850d@virtuozzo.com> References: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> In-Reply-To: <20261102-vfio_v1-v6-0-9bc7cabc850d@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIVP296CA0048.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:353::18) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DB4PR08MB8199:EE_ X-MS-Office365-Filtering-Correlation-Id: b028e928-12d9-4c2f-52a8-08df38cd25bd 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|1800799024|366016|23010399003|52116014|376014|38350700014|56012099006|261021133027099003|261009223027099003|261028144727099003|261026135527099003|261021130227099003|261021135927099003|261021123027099003|261026121527099003|261021121427099003|261022115727099003|261022113327099003|261026130827099003|261026140227099003|261022105027099003|261022075727099003|10067099003|18002099003|22082099003|5113699003; X-Microsoft-Antispam-Message-Info: bfEhAl4SfGSt9FYsW1ERRqGzkTZ96wDvxUzz+8hqknOLXQI6oijb2Hic8+ebpy789Z/AuPkcl09IcPjDniDGh+J5mtQ49B1l0G5FAeYjmVYH2Xy0gCnKLQ+NlMiAUJRq/sZIDWWFvQrpY1flO+fQCdsfUmeT98zTiPqF+Tker+zphVGyr44PItaZ3PGrX7Uuvhnyobi/2G9UxI7tXstWPiwgx355WBxe/DgZhDI6EOYqwPam/GZXUicyj+FeUXVxCUOcp35dr3aCph/KMzQZC91oOwf/F6QGefoxzL9Vxn0iU7ed14KAeS5MPNR8v/hFWqKyunzI6yiDYH4OMePE+PLyDoOBEPmSqfyXiVSynkGZkr9iCDo0QMTSp+H6ui1lqJbxnzXtPoRHGKOfU00LEWdnxiOKxw1fn+HhZwAtUzLktSoRF5FxIpIGMJI/CWNqFL0Fnli2AIDVVpBlgDwNTxseMWE1C0M8s3bwe/pOXcsnROjPb2CjQ7gdq43c6OqrsUwY6oL3KMae851HS6a+iDm9wvOnb2XPzHOn2Q1xC8SA4JJieo82Dxu+tnrcIh9ErUVvkP3pxkxZk3Oq8r3fpuZcec/B6aJyMpsv1PxTl6e0MWVD27F6amuUXDhcdh60VdfIJL4x+GsZAD89O/nHAkiqKGtNaUefbSaRZBJhbWQZDabKeX5GnTFWtdlVXl47 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)(1800799024)(366016)(23010399003)(52116014)(376014)(38350700014)(56012099006)(261021133027099003)(261009223027099003)(261028144727099003)(261026135527099003)(261021130227099003)(261021135927099003)(261021123027099003)(261026121527099003)(261021121427099003)(261022115727099003)(261022113327099003)(261026130827099003)(261026140227099003)(261022105027099003)(261022075727099003)(10067099003)(18002099003)(22082099003)(5113699003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Vk85Z0ZyWlpRRGFKV1JKOEl5YThINlU5MW9VNDJ0cCs3RmZOaHNLVXlEVEYx?= =?utf-8?B?bTZWNE5DQjFWWGtUTG1YWE94d2VRa01rdWZwNURlS3ppY09qOVhWV0tCckhC?= =?utf-8?B?TGNRZVFOQ0l0VStWdFIrSzdGeDlldGV1ZklUUGc1Z1YrYkJSanFSd0ZPVFVw?= =?utf-8?B?bUVMTjVsSU00MXJHd3FING8rTjl2OHNJTWdqcG84ckVzMlVMT3VOSGVsRzdl?= =?utf-8?B?OXQwK25GL2tXN3VxV1ZwN0t4YXk5T0NBcHNBTUplQkhEY3ZKSFJoaWtSSCtF?= =?utf-8?B?K1JaRkNRN0xWanZBMkp4YWI1VDNyS0E1NzdXbFFhTEVVTTJvSXpWZ3Frd0s2?= =?utf-8?B?RGwyd3RQQ1dUeCtMQ3VMcy9tR0tnSklablBpOXYvRFA5WW1JMGZXbENUMENL?= =?utf-8?B?aXBMemxuVHlFaEM0V09Rd2lIM0JDQW5XVXpqZVhxaXU3NVg4eXF1T2RNRzBE?= =?utf-8?B?MDgxdTVrWEVja2k0b1JuMkpCakNGVGQyNmgwQWNGS3NMMTU0NUhSVjVEVlB0?= =?utf-8?B?UWFJWkVCWktSVkxqZkxGUEZRMjZ4Tk1kSXVrWVN1VCtDTFRqQitMcVgvU3Bv?= =?utf-8?B?cHN1WHpVYnlaN0dZNXVqWHdIOUtPR2lGN0NHU1NMaHMxL1RrMml6S1BmWWdX?= =?utf-8?B?ck93ZktLdGN1U1gxZDB6aVR3UTBiRHo1NVl1ckl2dWRRUE0ybWkzNmZOUU94?= =?utf-8?B?ZC9tblJLckNUNU5xbVhPcmRxbXJWSE5tWnVzekNNQVM3SmhOdWxaYjkrYVhC?= =?utf-8?B?Qm5PbHdoZVhtYjNzYU9hb2pWL3pKQ0paKzkvVkZEVHZwbUFyaEVZTjA0NnJC?= =?utf-8?B?c3draGg1cEJCZjZDeWZYRloySDRNYUhiRzNMY0c3VlVrcEtZSGd3c0puVHli?= =?utf-8?B?ME5sY1pvQkh3RHlPWjJkNlZLZEVxR1QzNUpLeW1yN3luSjd2TFlicE16d1lI?= =?utf-8?B?MXQ5ZXhTTU1HdnpFc2tqYzZPNGd0UUZGVWxLTk8vY005TEhjMU9PMUphaTZR?= =?utf-8?B?czlqUWJ3UmRWZ3lXNnlxNmJVellOZjlNa01TZGlieTZ5TWRHUVNuZGlYN29h?= =?utf-8?B?dURzUDdiZ2pHZGZSdXZJUFFOZURYNWxFa3huU0lQaVllUmtodXR6bWo5V0N5?= =?utf-8?B?Qlg2S20xMUpkUy93dEtHWWJQcXNZQ2twbjdmMXVhWTZCMWNobjBhbEhzUTdF?= =?utf-8?B?NUxLaHVmR0xlWC9STFNFdytjRTdOZHdLdGFUUm50SnFibHRXNXNETDdkSmE5?= =?utf-8?B?Z0ErZGdGSFprSng4Y0JFQytha0NtUSs2LzQ4V29nalp4SkhaZ1lsNnBocEE4?= =?utf-8?B?SWVUc2Zoc0NOQlg2b0dnMEw3RTZRT0QyNTRGSHh4NmdydVp4aU9rRzBQSXNw?= =?utf-8?B?bjQ0M1F5YzFVMWZpWTMwQXRNTnRnTVFqRHNwUmhwRzVDS3NJV1hVejF3VjYv?= =?utf-8?B?NjR3cTJCNi8wYXlleXhhWU5pQ1RwM2wyUHRic2ZiRExnUysrRndVS01oUVU1?= =?utf-8?B?WldyTFgyTElQdTBDdE9ldmpSY01USzNIcWxQRnFnSDI4aHpsakx0SnJMaDVO?= =?utf-8?B?cmdmNHQ5MklRVEVsTGdXWGNOQjdVNVZjbmlmaTY3S0MyRnlsdXRDWkE2dXZ6?= =?utf-8?B?UHFLb1ZiZGN6WGpjanNXaHZsdVBOTEN1MWxpeVppSkwwRkY0U1NJZWJXdTdD?= =?utf-8?B?Q1lnajFTUkFRbTB4SkZQV25Wa05WMlZJN0hrdm4zUVlDaDliQ3hXb1IyWDFz?= =?utf-8?B?Smt4UkxaVjNEQ0RWY1JYMlRsTnNLWXFtd25xZ2IwUjdsNUliUEF5Z2VtWE8x?= =?utf-8?B?Mm5ZYzE2aTZsSDZucHQ4cUJMSWkySy8yNDJCalJPaFU0QzJhNVA5THF5aDJw?= =?utf-8?B?VldCMVhQOGx4SFZHNWxrQkRvS2xjVGRTcmNZcnBwQll2YXo1SlI4a0xPV3hZ?= =?utf-8?B?U1FwZkxIT3lOTEh6czErRkpNdm02OS9nU0lrSTg2WURUcXIzM20yQlFnZXdJ?= =?utf-8?B?dWMvZ0lvbDY0Skc2V0ttSnlReEFteDNIcExEbDZ0RGx1d1VNN21DbWc1Q1NW?= =?utf-8?B?QUkwT3VYWWc4SmdNQW5LUXVNbzdtbVo5K2xYMXRvRm92aDBRYVhjNWpZOXQ0?= =?utf-8?B?aHZlZzFOUHVKbGQycm84WXJ0NGN0bGRFNEI3eGV6LzBWZGU2QmwwQU9VRTVE?= =?utf-8?B?NzFUeUJVN3F0N1VJdVRRWkwvUVQ3dmRGM1JkeXBMM2lwQWkralIrU1NGaDNC?= =?utf-8?B?VkFRdkFVMzl1ZUVDZHpncFdGMWhib3M2RW05ZTg3dFh2TTNDWHlMQkgzQWJY?= =?utf-8?B?eFg0SUZ4R0d4alpkeERIU2VTTDRJcDFMY2RPVkJXRGI0SENBWTZubDFqaW9O?= =?utf-8?Q?XjbB3YYvYPdvbpHM=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: b028e928-12d9-4c2f-52a8-08df38cd25bd X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2026 10:36:26.3895 (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: lOqU8tZH1ozfEp+6c4Yghgc16bBmQgQSHy7wRHt4DC6CFh2hFocL/2RKQrggc11RQLAmzVQ7F8uT7PEay9j6zwzLzk6fLSzzq/ZPa4vBhYE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8199 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