From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11020125.outbound.protection.outlook.com [52.101.69.125]) by lore.virtuozzo.com (Postfix) with ESMTPS id D0A988096D for ; Fri, 9 Oct 2026 14:56:08 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dmfmE3TJ5VZhn463vOFJxpssUIvloINqG6oNvbqF2pikOirIXDz1yGopt95Emi7u2DOj1BqJthIthYJ/h+I6Fb7Qxj3lcwqV89A8qtPQE1pkbL5wiB5YLpH80ccLJaMgr3NUtG5FLIwTkqDGSTJSSXmlLVXAoZETNY2VtqZY2n7e9mJzce4YzQbE+EpFgTCRp8Td7tsMe1fvqjD54yNcBcCPLPCcKaDJ7jknbQHbnqQgyVAPuiN8Skyzxoq7n0l3MKGpe5SajlzJ9gJTxI1dTo8+4V4a+Trcnq8l9Y4PAvPxrnE/Q2WnxWgm7WF9VwFEEqTpoQF7QVr4g4tqRf+9Ng== 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=2UBFhClQyoP5TLYURVhBzGWOL09my4ahEchsY5coW6A=; b=ZzTBMsTR3R8Tz2eKb9CykVdrzI7/ZNM5YIsySUdJlqMS6Cqbkzie1TnwZgzsVIp56AGlnYj20sj+pQE6WAgAXgS4+j2qCdH4Lk4RfnqiXbcb7zsC9mLU59KXjq2IiDMnGnPMHf/MqM/nwAX5WyLWMyIqR/t1wzogdd76Hei1ujeYByPi72GcWxs6SEfCo4QpsbAP23RmGXnLQeKCxJziNAnMVnqMiP+uOuTTH45ak8tPUhzE7mmh0pRuHQ0rRQx9uimuRFYlHVBaJrOscVbp4GH72p8TDWasS3g4hZ6qXVlPhYq8IkcpfC26W/KoINcQXU853ciCWcIiko2k2kNmVw== 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=2UBFhClQyoP5TLYURVhBzGWOL09my4ahEchsY5coW6A=; b=gv0Cn2ZIEha8eEwSOx+RTsyosXFWgZnfIchCpbM4omjTwFhlHpL1R8IY0eNc40CjUba2BvdCVs9WEieI09lErkerOv+YBC/OHFgZWbpasvI1+y6yPOTeAWjyfRg3qWSH0jxLL5ObPFKQw+g2GVoI9dzKmotMXfHidmtuepBcZxzD8zhjAnnzXVccZPl0GaNebYHSfJWyhWnQPvgNVxmalhkMR4PKp+/7SHScNy96dDz2Z1if9Eif6zhYBpA97EpA9B2xiy9Cn10/sFTQktiMi4TOXrbX6IWaOoDuD5sQq0u4i8+NhAeEv0wkmrGavVe3MuW9VIY77N/i98Ywz5wL7A== 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 VI0PR08MB11172.eurprd08.prod.outlook.com (2603:10a6:800:254::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.496.14; Fri, 9 Oct 2026 14:56:06 +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.0496.010; Fri, 9 Oct 2026 14:56:06 +0000 From: Andrey Drobyshev Date: Fri, 09 Oct 2026 17:56:01 +0300 Subject: [PATCH QEMU HCI-8.1 02/21] hw/vfio: Fix liveness check in vfio_connect_kvm_msi_virq() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20261009-vfio_v1-v1-2-2ae91d5b8048@virtuozzo.com> References: <20261009-vfio_v1-v1-0-2ae91d5b8048@virtuozzo.com> In-Reply-To: <20261009-vfio_v1-v1-0-2ae91d5b8048@virtuozzo.com> To: svt-core@virtuozzo.com Cc: Andrey Drobyshev X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIUP296CA0132.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34a::14) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|VI0PR08MB11172:EE_ X-MS-Office365-Filtering-Correlation-Id: 34337444-ee5e-4e33-d3b2-08df2615722c 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|376014|23010399003|52116014|366016|1800799024|260925021311599003|38350700014|56012099006|260925022911599003|260925021911599003|10067099003|5113699003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Hy/yInUw57pi3rW5uilDOhQ3urwg4cZc0/7xsdxZyrrjuZDrvuYtETtlBw4JS4aR27LDIpEBrfF2Xggnf3jbWGNn5JZ/nr4E/zANf3RocuWGv7w/JnaGDpNHEmKZk8duzhkk/98Rx0/fCVHZZOkP4WqJu1KGtnMAVsuLylodW/WCDP5IQsgPk79lhH8eeVWIfEYjLdYCX9oMmxsqnawcs9w1FI7XCYaR4YHSBrRU4+O+N7ypYDNJK3R0krPeH43tWMu6t/NDI2MXsSIzVftCh+pQEApwNAbV5DPCwqrawSFAHwUHSbFL32eWsEgk13zqGlRHe/HK6zgDZQEwull9O9Ufktziwo/EVNdfhY//5CTM62Uk9iiOBsGwJTwPVBpaMWOsM8FG7rGpisDVL32HLdz89gwu2uNBKC4uowlJRxEGJiWjfBTx+xo2fQmCVAMnycEDenkw1oUjFE08EoCl0BAnjsiyGedfpE4OVnMWjL1tcSkv8y2/ZtceSLMS2IhhNrEYoeuhC1Voy6KKngFR9Lc9kmvLiO2WLp5fM3RrFPpaTqzYOVmAqyP0y0k0w8rGqxqa+s2+ZNpDoTXWt9S3AdaL9hHYQGllXOlHGpb4QO97gU8F2wfl/FaVzHMP0/0lKnH2uLg+PHyPIqIcC1dB3uvoYf+N0QbHpmqO10PixQHQiIXdyPSkUA68+wzod7sx 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)(376014)(23010399003)(52116014)(366016)(1800799024)(260925021311599003)(38350700014)(56012099006)(260925022911599003)(260925021911599003)(10067099003)(5113699003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZmpPQUE1aWtJRlJCSVNTeTl6Q0JRbEtQcmkvNGExeXVZOWR1bGxydktJMnNu?= =?utf-8?B?bFRWZ2NRdGNGeTJFOEFCMW8vZmdSQ3hYUXh4M2d1N1VJK1ZDazQvQ2ZibGZz?= =?utf-8?B?Uk5rYnFMaEtnOE9Ha08rQzZrUnlla0NacWFxRlVIb1NvWFNBN0NaMUNnSis1?= =?utf-8?B?a21ERnNDZHI4WTNKYTdJUW9yN2hjZm1zRWx2ZnNyQlNpUmI1aDhYL1dOOUNr?= =?utf-8?B?WXo2cUlCc2pFV0pTUldDRjJYY2lCUlBmSngxQU5ja2tDK3c0UFJRZGNGTVYy?= =?utf-8?B?VUtGb1lCQXg3bEo2NTNGSmtSRXRwTnc0LzdoMGF5eTFGYTNmRkQ3MVQzQzlu?= =?utf-8?B?ZXhvU3dNU0o5NGY4MnBpWmRNZVVCbnp5MUJlVHdWdGpxTnRJZGtXYThsd0FV?= =?utf-8?B?eEZUby9NZkNNYWVyaC94elRxYTZwMjExcUk0dTFxVnZCbmVOcC9KLy9Gb1Q2?= =?utf-8?B?bHhHVW43Zk52SGp1VThjbjR0VUFKNW5MZ1NoTnp6a3BmMDRFR3UyOGdLZ2pC?= =?utf-8?B?NENuTEV2OUdtRU1SNlFPZWxkQXArNVliUmVyRDQxMFMxbXBjWHlBbHNrbWdU?= =?utf-8?B?VVJ4aHVNbzc0T1Z4NmJjdTRJWFlDcnFlV0JzWHIrQVdxcWRHdmlWZnhPMGVT?= =?utf-8?B?KzVRaEFiRFk0aXlwNERjcnJJcHIwSUFRNU9Scnc4alZSS0lQRHM5QjlZREli?= =?utf-8?B?WWl4Nld0ajhMSHMyNEdXbjV1TGU3U3k3ZDZlTlQ3eFBDODdBL1ZFdTQyckZR?= =?utf-8?B?OC92aUl5OU02NzFkdkxpdTBPTC9tLzRQK3VEbjdZRFdZQ3lRVDEzMFNjUmw0?= =?utf-8?B?WXhoQzQvdURlaU5wUUF5cFU5TEE5MGluY0gwSE0xSytzb0JYOFVONGUxQWNH?= =?utf-8?B?SHBDamVSSTNKZDFKbnh2ck1SV2FQelpicm56TGoxcVRTQUtKQmFsWUZ6Z21Y?= =?utf-8?B?QU5DdGI1ZVVZNmlvWCtXb1paMm93ZW02MGhGZmhVWkZBWWNYZmRUQm5pUEor?= =?utf-8?B?UFdYN2E1eEYveTJYaFFUeklkUTBjWlV6VzJBQW4zUW5qSm4wamJycUpQWlFL?= =?utf-8?B?WDRrNXU3MUVwdGJRTVJ4TGR3UDRXMENPdHZGb080NE0rY3Z4cVdpZ2Q4bk9o?= =?utf-8?B?YmxLczhiTmZWZ1FnYzhOaWhlWmE5TzRmTDVjMVZIcFhLRGhPV3FRcXM4MnBN?= =?utf-8?B?MU9DZTJ6V2FLVXNNYlgvbXhPZTlFOThwNmdpT1ltWVhVUElhQWpOcTg3TDBi?= =?utf-8?B?eHpTQVlJMUlSN3o1MUhKcWpPT2VYMWNqVU02L3RQQmwxSVRSdUhvZmJLU2JL?= =?utf-8?B?NXBrS0dFNXpWOUVhZGV1eGVSOHZoMmpCbjBVajZYQk51ZTQ4WHNKWHRPTDNt?= =?utf-8?B?U0k2UlZpRHBOdGRRbEU4YmdlR1hCVnYzN1pDRHZTWEdBWUhRMTRIOTVUalZT?= =?utf-8?B?dVRBU1JCMUo2R000VURSWnNjdjRJdW9xU0Rhc3NVNnRiazZEWlR1NE5HcXFO?= =?utf-8?B?SHk4Q3hkRHdIY3JXOEUzK2liZEEzbmJ6T29EMVpEcVVjdURUb1l0ZWtuN3hH?= =?utf-8?B?WWEzTW00ZTFvMzV6RE8vcmkrYVB3NDUvWnFRQWYwN3NNL0R5bk5wbDVBK3ZL?= =?utf-8?B?YVlIdWNNMmJBYzgxQ3RjaDRkNElqZnlZbTUxbEIyR290M0hpTitWa3poR2lG?= =?utf-8?B?b2oza3k3WUh4UlVydlJwc0pwSytNemJ6ZmJCay8vTTVXMktRemdvK05KSWdF?= =?utf-8?B?YVQ2WUJQWG5QL1hTK0lFSjA0Wm13QjI0eUJ1SkFMNHdPRTJIYWRvWkNBUkti?= =?utf-8?B?dzlBTmRTWjZwQngyNTA5Y3Nzb0JMQzE4ejgvZWd6V1NsL1lnY04rNXljYmMr?= =?utf-8?B?bzVEV0Fld2pTdkRFa0JwWEZMT1lHRElybkFQYjhEbUpTWHZ3SkdCM096MzBi?= =?utf-8?B?aGJPVjkwcGM2WUV4MER0cGhBTUhvZGR3dGtLWXlCU2lzNnFiN0hvanVHTExS?= =?utf-8?B?SU9xTnRKVE5tM0FFdi9ocDh4MlYzclNSWjR5Qk4xSUVBcWlTME51Q0RPa1FK?= =?utf-8?B?MDhXS1Eva1JjR3FReTJ4dUZzRHZvUWluWmxhUXplUk8ybzQ5bmJOVDNhZ3ZV?= =?utf-8?B?SWo1SnVYVjJkYXdMR1ZObThqSDRQbXdqOG5TbGRNRHBBTUtNZUZvelg5TlFK?= =?utf-8?B?WlBENUVxSHc4Nm9oeDhZb29SZXErVzhjVFBjR3NsQ3ZnZTVOZVlMRlNDSmVv?= =?utf-8?B?MlRYSU1aVnNCcmJIeDlja2RjWktNR1BCVTUwUy96VXJtL3hudnpYd0lYc2sw?= =?utf-8?B?MjI4OFBSa3JETEpBQ0dFeWhIWGF2WW9WWFNiZFVUSGdSNUFpeU5OSXlzdkRB?= =?utf-8?Q?red8pARPFgdr0Rc0=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34337444-ee5e-4e33-d3b2-08df2615722c X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2026 14:56:06.2757 (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: bkJuHO4D9jzR9Cmw+FKU4j9JjszbDELT+2yZV0kp+VZy6aGWAKc/mYRGz2aGfLhqX629c9Dkd60d5wKehTg/kQTtt2Er8ysXCcPeR21ktrs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11172 From: "Tycho Andersen (AMD)" While working on savevm/loadvm for a new vfio device, I encountered the crash below. Since vfio_connect_kvm_msi_virq() didn't check the ->use flag for the vector, it would pass an unused vector down to vfio_cpr_load_vector_fd() which would crash. Fix this by checking the ->use flag along with the virq number to detect whether a vector is valid or not. Thread 1 "qemu-system-x86" received signal SIGSEGV, Segmentation fault. 0x0000555555a891ef in vfio_cpr_load_vector_fd (vdev=vdev@entry=0x0, name=name@entry=0x555555eeb27e "kvm_interrupt", nr=nr@entry=1) at ../hw/vfio/cpr.c:44 44 g_autofree char *fdname = STRDUP_VECTOR_FD_NAME(vdev, name); (gdb) bt (vdev=vdev@entry=0x0, name=name@entry=0x555555eeb27e "kvm_interrupt", nr=nr@entry=1) at ../hw/vfio/cpr.c:44 (vdev=0x0, e=e@entry=0x5555586971b4, name=name@entry=0x555555eeb27e "kvm_interrupt", nr=nr@entry=1, errp=errp@entry=0x0) at ../hw/vfio/pci.c:79 at ../hw/vfio/pci.c:601 at ../hw/vfio/pci.c:597 at ../hw/vfio/pci.c:3088 at ../hw/vfio/migration.c:278 (f=f@entry=0x5555574a43d0, se=se@entry=0x5555591edd40, errp=errp@entry=0x7fffffffe130) at ../migration/savevm.c:971 (f=f@entry=0x5555574a43d0, type=type@entry=4 '\004', errp=errp@entry=0x7fffffffe130) at ../migration/savevm.c:2654 (f=f@entry=0x5555574a43d0, mis=mis@entry=0x5555571de5a0, errp=0x7fffffffe130, errp@entry=0x555557157c10 ) at ../migration/savevm.c:2973 (f=f@entry=0x5555574a43d0, errp=errp@entry=0x555557157c10 ) at ../migration/savevm.c:3058 (name=0x7fffffffecc9 "foo", vmstate=vmstate@entry=0x0, has_devices=has_devices@entry=false, devices=devices@entry=0x0, errp=errp@entry=0x555557157c10 ) at ../migration/savevm.c:3452 andrey.drobyshev: This commit is cherry-picked as-is, with no modifications, from the upstream commit f498c21b3595. Fixes: 30edcb4d4e7a ("vfio-pci: preserve MSI") Signed-off-by: Tycho Andersen (AMD) Reviewed-by: Cédric Le Goater Link: https://lore.kernel.org/qemu-devel/20260727150038.2684512-1-tycho@kernel.org Signed-off-by: Cédric Le Goater --- hw/vfio/pci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index fd73a0fdf87..5e281b2e1d9 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -589,7 +589,7 @@ static void vfio_connect_kvm_msi_virq(VFIOMSIVector *vector, int nr) { const char *name = "kvm_interrupt"; - if (vector->virq < 0) { + if (!vector->use || vector->virq < 0) { return; } -- 2.47.1