From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11023127.outbound.protection.outlook.com [52.101.72.127]) by lore.virtuozzo.com (Postfix) with ESMTPS id 9964C8105E for ; Fri, 30 Oct 2026 14:45:51 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MSEFrtJaMzsHRf5nS3mE1kZ095YWT6Ys8PBoQVphnz6QjwZ7V557GAu+xctthP5sKEQ1L2DS0GQ9cPM9fLGtcw3Ns+xRTajJjZAufy9To3NHQ3SZ7vFX9gydskkDg9Gb+BkPfe2oYpLFbpRILwZojq2QueNLYnY3gPRKMP3i4eZvt9rvuoSre+fdK9KBwW9amryQb1O6bBLIK0xvXWc2U3Ia1xokwatYtjYyYrljWOgy+G4gn00pE8WJTL7Eawf9Eg3WZ2vW9zibSaxNkVE6Rye39dw1QBwM5TZq7QrJy7u+I6X5+BE5vbQvQRMMgYWsfK3nKhbNssrmiAsdm8OZuw== 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=zI3BIw7JUGkO55W4CzpT00Gpj6or7wDm9736uAX7tZ0oTz1giOuiSoiYHvDElZmU1pmhDR77V3EiW1O/vqjChCRP/xu0piRhsGOR0INU4p9KmpX/l3A61Nez6ELbD1y/yzkQcOc7E8pnsui5oxjFIVvD5YpvGrumtgh5Y7XOupwEq8uFILK8qgMR2QIU47OWC6xvkpBXnkGiTEAb+Lj3U4waEFg05yxpEoYxOuWPW9wxJuqHR3WmS2xVNpl+BH8Dnls+b2ioIFCT3SwR7eHkUcTbs0edbj28x7YaFOjabzIFTYk3Q9xtONU+WawSd9I2UAmDfbeM7S/Sqbs+YprfRg== 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=iBAhuLSaaRATpiZYBPwHSLIkTwTBbbFqPjbDHuUobjZtH8rverz9F/bio71KCwb8qNtPQ7L4rcI/fAvR4t2fXvLjzOk5aF55pi+8jKv90JRlnauIvEeBNBRLUxA7OwPTn26ZG9K1U+4ox8qy287+fDoP+Y+Lnuncmdy2K9GM1MxeV+mAjcz4EJd6aPnbwVNrOmuIxRbbnxhkgVmL0S9crJdwifQ8E5VEszQeLEjr2ucKlIHF+lvMKTyGPofiLKyjUQHk8U2s6Rrgqp0ywytV0pG4m9thahpSsMJ7/D+/2Bihw14SCqcaNzjwaMLaZGszqvkjO/VrSKCH8q1XiZfo5w== 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 GV2PR08MB9373.eurprd08.prod.outlook.com (2603:10a6:150:da::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.12; Fri, 30 Oct 2026 14:45:46 +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.008; Fri, 30 Oct 2026 14:45:46 +0000 From: Andrey Drobyshev Date: Fri, 30 Oct 2026 16:45:43 +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: <20261030-vfio_v1-v6-12-45de246bc92e@virtuozzo.com> References: <20261030-vfio_v1-v6-0-45de246bc92e@virtuozzo.com> In-Reply-To: <20261030-vfio_v1-v6-0-45de246bc92e@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR0502CA0031.eurprd05.prod.outlook.com (2603:10a6:803:1::44) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|GV2PR08MB9373:EE_ X-MS-Office365-Filtering-Correlation-Id: 08d4eb73-088f-4ef5-5b3f-08df36947ac4 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|1800799024|366016|52116014|376014|261026121527099003|261021123027099003|261022075727099003|261009223027099003|261022105027099003|38350700014|56012099006|261021133027099003|261021130227099003|22082099003|10067099003|261026135527099003|261021135927099003|261021121427099003|18002099003|5113699003|261028144727099003|261026140227099003|261022115727099003|261022113327099003|261026130827099003; X-Microsoft-Antispam-Message-Info: tkTyVeBgQSaXDESRqa9nC2MY+LEmqseBe9n+vc3/tBiRQr3sMmURA8aQ3f7038JTWqf5XrtkQCvKdib5pzrZvKqgNe9EPFl/KIO1OhJbYE/h2vFje3RxkDTDuTBBZMZWuBue8J/x3m4DcqH0MPd2RXmfqN1yHPPHXtWIwEaQPkjIaheGkojL+CPWCnyLMyIQ9Kv0vOBwhcWtoz3zwPHWbLtPDpY0nxeACnZpYnddVlyhBN+2ClhPSBKjk+dfRRFaJOrUrdnzyZaPEd0VoUQ5pGfhQW7zpWsgoXDbVqo7/YidYoiTVp59Si+Qi9SUk/9NqYct5LDXwYR8BejKn3yRrsTICLqqFrulSlnm3Ogem/bSytXV3wAJwvmk253M/jJwNmqk/V0jsNgIKlwxl5QiarkzEIik/e/QSjHp6jgoqNgRTGNNVfzCjL8e2ZKO/FCMynViyxRgBx5SmgE32VTvPlE0VPxd1aWK7TDF561zQq/YKp6e3gLzS7laPZibmi+ZtcyZuE15CnHBIWeQomMubYbLaMdhZ/piFwiJ41LX8rIojoNlD9XTTZHWZPyCS/8ZyOWRq15XME1JbLvA55/PxZYpF1jg3JpWTi5jBK2gGQq2rm0j9PsyzXYijFSZgMDG0tYCS+BkG+aIxzr542vleSagKeW7VfbiF7E9c75LaFs= 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)(1800799024)(366016)(52116014)(376014)(261026121527099003)(261021123027099003)(261022075727099003)(261009223027099003)(261022105027099003)(38350700014)(56012099006)(261021133027099003)(261021130227099003)(22082099003)(10067099003)(261026135527099003)(261021135927099003)(261021121427099003)(18002099003)(5113699003)(261028144727099003)(261026140227099003)(261022115727099003)(261022113327099003)(261026130827099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Uk1lN2ZUWlRxVERCc1pTM0tWTjdkbzhFSFJQc1A5TWhOWXlZVmNFMFg4MXdQ?= =?utf-8?B?MEhUMGhoZHIzck9NeS95Zm1YbmpRZ1ZWaDBzRDVyOXlGL0tYZ1ZLc3p5Ynpp?= =?utf-8?B?TkUyend0ekk4TUxJcTRyQjIwUFdhcUwvSzEvTmQ0TnVMT3FkczhvVTdYOUpY?= =?utf-8?B?cjcxUDZCcXpMcGtLN3p1WXhISW5JekkvSllWSWtQNXlRc0ZuWHl1Z0lDVCty?= =?utf-8?B?N2xVNXF3a1lNcTRTcVJKcVZJNnJGNGp6T1dkYkExdkxreGJEeFFVUUloOHJP?= =?utf-8?B?Q2NzOUhVYkNLcEthSCtmOENuaklNYU1uR2NBd2RiK1FkaHlSR1JNYXFQalA5?= =?utf-8?B?VmNrKzhQTmhXWFMyNG5tWFhnOXh4VFZEY0MzS3NUV0tFRkFjalZyOHRxK2FE?= =?utf-8?B?aHdmUlRpV3puOUxxZDYrWTBHSkt0WUYzVEFKRjM2LzNlSnFuN3pGWEluOTJK?= =?utf-8?B?QWxkQ2Ztd3pPSkJDT24zQ3pNbkloaFhTYStUaS9JbEdKTjEvZm4wTUw2cW41?= =?utf-8?B?RDBkLzBQdXpzU0M2S1gwUmdDRGo5blJOTVdxRW1YTVk1aDVyVVl6WXZkdFYy?= =?utf-8?B?WVplYjlPVXlmQytGSjhlczFVeVFyNmtTRVZNa3VSVkc4QVR2WmYwRUlqQWJh?= =?utf-8?B?SEdPa2xqcytEQmFReFoyLzBpM3grd0JnZkY1bEN3bk5ya1lDSVgzMzBYMjJM?= =?utf-8?B?ZHhLUGxRL2hWYktydlVVeUxoR0hLNXd0cno4RWg5T3k2WFJQODhEczBESHhY?= =?utf-8?B?MGIrUkxxWU1GZ2ptSkNnUUlHSFNsS2h5bjJXbXlERGJsMFl2d0dvbHZNcnor?= =?utf-8?B?OVdWeisxWS9rR3lwYzNsZzNuZVJVNWoxa3RQOHBDbjNyL1JuZmlCelJScDVB?= =?utf-8?B?U2o2WXFsZU1MbngwQWNXMWhHL1d5ME1jZDJRWXVkNXNhTHdhMUhweGtRaW1S?= =?utf-8?B?S1ppcklZZVE5NWpmaVg0YnFqckJIa3Bvck9mNnBza1lYL254R0Z0TDJoZW5r?= =?utf-8?B?MzVHd3piSzJxcW9TZzVLN3lCNUhabDl5bGxrOXFQb1lxb2o0NmtCcDNHMlNl?= =?utf-8?B?bm53WWYwR0lvQ3ZQellkZmJqbXN2RFAybzdTVVRJb1YzQkZSYUs5cWFIM2Vn?= =?utf-8?B?SCtmZzJ0SHlOT21OK091U0RyMndpSmZVb2t5dmFPdVhCcHN5VVlxdEp4TnFR?= =?utf-8?B?ejJ2WHNMNGxUQ0Y3ZGNTR0V0Z3BtRkM2RkNxcDZQblhmOWRCTTVsd3k1eVFr?= =?utf-8?B?TGU5bG1YSEZTZVRhZ1RoL2MxMFU0VG1tZGsxSDhabkRXaUJlMU9HK3RpRXBH?= =?utf-8?B?V2pXcytwL1Z5VUJYckdReTlXSXhjZkl6d1dMOWVsbC94RUdRK1JsaStaTFAr?= =?utf-8?B?ZlFSd3ZCTWZBTm82TXBlY3VwUHQ2d1lvSmdaWjdwSjM2cks4eDBCWVJHYUpK?= =?utf-8?B?d1dnM0xhNU4wSmZtc1pjZlo3OWtBSDV0YjBlSW5scnZMUUxSdkZHWlgxZ2E4?= =?utf-8?B?V3Q2Vk5IWnFwVFZ4TjM3T0F0WFN0MC84QnMzemtHWFkxYXViYUxlT2x6TzlH?= =?utf-8?B?dGljdzZqQ0M2T0l2NVFiWDVPLy9WN2t1WEdua0o1dStIQllIemZwOHlzcU5O?= =?utf-8?B?MjhUTkJaVnc3UFRzaFQxaFBRam1TVm5sL3VFdTFwb0ZkSk13eE40dTNGQk8z?= =?utf-8?B?cURTeE43Zkt6a1dVeklGZjVqbE1JdFAyaWJHYS9Da2VSMWx3Y3EvSUIzc1lu?= =?utf-8?B?QVdvOTZuUThPMXU5LzhmQlNETG0zSE1Lam1RWGg1UzdxSGh0SnhGYjE2aGYz?= =?utf-8?B?cmJaR2oyWEVacmxIc29zbFJxUmh1bzN0QTdmQ3BmSW5SOFRHVEhRbjNBUTNZ?= =?utf-8?B?REZRUlloTTVzZHlkNGhRa2dXR0E1VWwvNEs2R2ZORVkwQ0FpYmYvbHp1Y3pQ?= =?utf-8?B?SForWlIrK2NiRysrZ0xYNVJvUmhCMGFTSE14NUJ0Z0V6eHdob1NpTDIxWW15?= =?utf-8?B?UnlSZXN3UmthSzh1Mi9tSG9rcWZteU9NeitnZlg2bEFOZUlmaUwxeW11SHJu?= =?utf-8?B?R0ZjTnBUbjhjeit2NDM0amxFVXZ3VEcwcWNtelV4ZUhDTm1QQ2VKT2g3U3dP?= =?utf-8?B?dUZTdzJrV3dBNk00TnpzYlY2dndILyt1bnBuZmo4UXNIQ1NZcDdJMG5LeFJa?= =?utf-8?B?WEFoMVUyWHFlcEZjWlo3WERSVWJvVXlrMnQ0T3Z0NnlrVHdZb2praFJhNnIv?= =?utf-8?B?YXNUMUY0Y243UTQ1WmU0MWtMMjFBdUV6amV6ZEhoenRXK2FveHFwY3h0aUkv?= =?utf-8?B?S252czlpbkRBVjMvZkxqMjdCdmUrNEpzTGhkUGVOcVNNZlZacUZ3OUwvZ1gy?= =?utf-8?Q?rgIyaD7MyWdlHSDA=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08d4eb73-088f-4ef5-5b3f-08df36947ac4 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2026 14:45:45.3816 (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: VPVJ6yOitcJVKOIBMG5IUHRP4iV6UY00S0WYmSpu+tSeskO5pt8T5OCqefbYRQhoQ3C/JXE+tvuFcH/2uSUE3AjPFhigb1PO7oXNxSkcKEQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9373 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