From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11023104.outbound.protection.outlook.com [52.101.72.104]) by lore.virtuozzo.com (Postfix) with ESMTPS id E20B380067 for ; Thu, 24 Sep 2026 16:41:36 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FCobwYgX88ltx7tLpv92PGyf/HtA6z1A0SlbRJ2WN4ThDJZuKoeWrgexQpDxQvig3ZS463FK3PSiQIYH6f3omjZz0tbaUnsoO8/bG4Fu5qF748gRsHT0i9aV9jxR8R1ufKGOKxNbCLfNOCbp1AZgAX1U9Lv9Y3wHIN2oqzlbMw7ULZo6USyfCa9LEpNxyRHSsA+q8ql2ESkrqVBRyFg+/RMT09r1mXyK8zqfY0//TOvpMMxpC4vcPqKAhQrEmN1UrL22jcNJZB3bKOe61kVGeR0RTnRkilSAtJKOC+YGyLXMFEXooR+m7urO3/romnECYMPipT/NhfF6YrBZ0qDG0w== 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=6UGOjaZtQOg9ZLya5CDjmKTNIg1NLwYQmXZ44F8e8No=; b=R9qRT4CS1fKJdVq4CLU0lL8CTZ1VeNYy05KXGNXrUudM2ek+csINdRqkTwY2SuFOg/9BvuZ847dzNxaQ/ts95ry+YLiNJaqxZ/3CwLqGevXAE0Lpr9MkiSzK6g+tnUsjBWGKeGr5FlQcaxWZgm3lkwol7JSYqMS2YjCMpTa/+fQekoLQ8oEfZjo45yHf7HNYVfX76XB0Og9DhTUW/6kh5JuInX4BfgYoB4YjYjNSYRvPXblHF3xILeSV4LhMrNyGzFf+csCDBnUw4WQTvw/yNOQgmsU/RHR2Sdp0WQ0/ZHGWhMa+nMZCP0DMExoFUXKGoEb8ulnAtRKGq2+gpF956w== 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=6UGOjaZtQOg9ZLya5CDjmKTNIg1NLwYQmXZ44F8e8No=; b=bSlTPiIaojD0EZovblA2lgrNdveN51o4Sa0Wln/U4XWuY3bof/oTTLtKwxLRlu1XQUawuSJoMsrAko3cKh7HcfM5tEw0ech9h7bEHGvSyj7CAhEuwbZFOrjUQxctJo71gitrx8my0Ix+/iGmotZL71ijsWkRdZ71GzKC5b7EVSL5lPNtd2/NjjAhpC0HofdbUxn8PpsfgT2SiJD4OH3rAY4w8HjfqUBYXpDTYWFmp1VfmsiMD16vHBQMy3wV0BD5Tl3ZTV2oglXvFnsvl65Sj1KxsbKfRHM+Oil5jKzSvLNQtKQ1wjbtqBozNb5IsKGybMidV/9hnQL9JBLRJyyHwg== 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 BR0PR08MB151385.eurprd08.prod.outlook.com (2603:10a6:2c8:30::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.18; Thu, 24 Sep 2026 16:41:34 +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.0451.014; Thu, 24 Sep 2026 16:41:34 +0000 From: Andrey Drobyshev Subject: [PATCH QEMU HCI-8.0 v4 00/12] usb-host: support CPR migration Date: Thu, 24 Sep 2026 19:41:23 +0300 Message-Id: <20260924-usb-host_v3-v4-0-1cc48bf630e7@virtuozzo.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIALRStWoC/21NTQuCMBj+K/Kem0wnYp2CCOrQoUOnkNjHay7Ix TZHKf73pl2D5/J8j+DQanSwSUawGLTTpoukWCUgW97dkWgVOeQ0L+k6K0jvBGmN87fAiBAN8qp UmeIKYuNlsdHvZe0K5/3pMouH3ZFUKYX6F3C9eKD08+bsttp5Yz/Lf2BL8e9VBCWyYLxihUSal dugre/NMJhUmifU0zR9AVQwjYbNAAAA X-Change-ID: 20260914-usb-host_v3-bbfea86d1dad To: svt-core@virtuozzo.com Cc: Andrey Drobyshev , den@openvz.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: VIVP296CA0030.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:356::12) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|BR0PR08MB151385:EE_ X-MS-Office365-Filtering-Correlation-Id: dd47d251-0eee-4063-73f9-08df1a5ab1bb 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|52116014|376014|1800799024|366016|10067099003|5113699003|6133799003|18002099003|56012099006|38350700014; X-Microsoft-Antispam-Message-Info: LKe2WIM2QheJs1OY5nym0EWQXowhNXKmMHO9MYrYn/sVwwO8xcKLfPNVZUvNWGdJGb/aN+50FkFapSTO1vtwW6FuTAHeAq/hmq+0QrsdZyK7M8f+GGN45yLzmeww0hdzJ+d6F1stlISbXyvq9f9yMRPFBKFpCkV0Kf0/9sqnRrapzenMZMrWjE/e3ZYwWxlrFkXcVnhODYo9aVltOBQA6jsSdrsdUypxdSjw1IQTfOgPbVq6fm3awRecLGRqmI09ODrZfymfotm9L0rE3mgAfzeNOK4oSz2R0DILFGKSQ+aNPInX8iXIvgZFsQB/ZrH7HnsjGRJbN3SLXLO/+vbpQG1i69v4gGY3B0duJzJnXiFel3eKqtbMwniSWq7B2il+mpMDyBU/fSNHztWR/GjSacUZ4dg5z1Oqec3ByaMIv7V9ZFsil2V01qc+JWE64p6CAdJ9evnVhr/rRYI6BTBSMLVCftc7dosDuwFiJGUQOVbnQmp7ds8yJEQZVftIAUUaAymfm1ANl5HwBrzFk7XRxPk3HZGzB9S2nNGY/RIokgd4Qfg2I6dzsllX2twYtWP7uWGuQ0Dla69bcHrHWQM1sXwvqS46WcU/d7hcRFbSUEk7zzS82o68tz7p5niRklGYMLeZ44CRK22zAxevMxTEpek5qzPnngUazCYTy1nvvZc0XiS5TRBoXMmdMBUlZbSobVOzK9qZnjRLGCDUNoXGNhmxMEll4SOuacCW80vBXXY= 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)(52116014)(376014)(1800799024)(366016)(10067099003)(5113699003)(6133799003)(18002099003)(56012099006)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dkFvUk1JSmFRSzNXTi9RZDlDWWdQbDBGR3FOMEVHWGhMQU5XS0NnQnZ3b2Ur?= =?utf-8?B?YXJ5TlFMdjFWL2czRzNuTTBNTjhhajBxUFJkZENVTEV1aURDelVXQ1JpUWhh?= =?utf-8?B?YnBlM1NTQ3RBWlRRYjlML3Bna3BLUzMxVlBTM3lhanM5ZlRyUUdTR1gwcjBN?= =?utf-8?B?VmE4bkxGZ1M0MkhyTDllRFhVaFRlWmtVTi9HN1k0bE9tbW1leXhpcEsyTXBt?= =?utf-8?B?R2xkZ2NYMXJXT2s1SzJQbXYwNXlaSklvZmRUN29CUDVnVDFZMmxmTDlLd1Fh?= =?utf-8?B?UGhvaEhJVEFzOFc4bFdqSHcyMFJyVUkza04yUEpScWYxamFPTVF0Slp5cklY?= =?utf-8?B?WUswR3dTVG5Sa2VsNXlzNmZtY3hHMGtVaWVnUU91SmNMRm50YWdZajNVMGZE?= =?utf-8?B?VGxRR1I2ZWRtQ0pNZE0rdGtMV3BGQ2lTQjhaMVBlN0p6NTIzZVJoRjJmb1hY?= =?utf-8?B?UkJ2WlV4TWdFcGVSb3lWbG1KNldkRlR1ZWo1NXVMNXdxM3B1T3M3anRXR3BI?= =?utf-8?B?SEhlV3h1RmdlamNVeEdLM0haOTJnUG8yb3RtcEdSdENQcWNHSFgyVklKbjZn?= =?utf-8?B?d0g0L2dEYkNaSXY0aW4vTWoyQW9pTWtzcTJRTjQ1U2VUbWFUVlJXYkUzUXJH?= =?utf-8?B?Z3RGZ1FSSkcraTlPNFBsbmhBb1N1RWxrU0d3RTJWSzdPc24xVmovaGRDNVNY?= =?utf-8?B?YmF5dGprS1llQUN1MDdEY2N0T0QvaC9aUllZR0tBZmVOT0syOStwNzByc2ts?= =?utf-8?B?MDZNVEsxb3YrUzNwUmNvV2Jkb09nRjFybGl1Q0h6TFB5WnF4cldhcUtYWmF5?= =?utf-8?B?a28rTHp0MlA2RkpQOE9tZ3V3bDBDRXVBemFkVy9FbnQ2Q2l1eXN5Q1JqRGhM?= =?utf-8?B?MU9QbURGWjMrOGJUcis5T3JzUy91YUQzY2hHblgrZjJ0bTRJSGNITnRyWWEw?= =?utf-8?B?M0I2M2RrcFoySmp1ckVPOG90TlkyTEUvMHJGNFI0MmRTSjBZUlZNNWw3Y3Nj?= =?utf-8?B?bVRJWUxpM2EvVlp3UlVUay9LSEREMXRFQ013bDFtV0V3N25adFI3Vit4dUMv?= =?utf-8?B?blIyQ2NpVTZZQnRRREVQMXZuK3dwaGh1R3UwMXhEL1l2VlRwTDN4TlRkdkla?= =?utf-8?B?am01Q0FvNjNqbEYrcGtsenFhSnRsRGtLbVZtZGlQVDVSUzJEb1ZJZHg1cTNq?= =?utf-8?B?UUk3R3hQYm54OU55K1B3UWZiaFFqakFsZStBQnhLZHNQZWVkSE4xblY3UXBQ?= =?utf-8?B?NjRtUjVjNEZtRE94amNiampxUDJvZDl6N3NnU25ySWJPcWlvZUthL3VHUmhl?= =?utf-8?B?WHkrU0R4ckJiRmhWNUJjRGN4QTNlZEx0cnR5eENNanh0dk5ncGl2WlRlcFR3?= =?utf-8?B?aDBXQVZISFpIS2dJbGYzVlZRWnhJZEJJeE9oenRyQjV0em1YV0NHa1VjZUtK?= =?utf-8?B?Y2ZITzl5QUp1ZDlvSjdZd2J6VWhRLytvVkRtemtXTm5PdzArZnFhMDNENFdw?= =?utf-8?B?WmVGQ3ZGMFRkM1EwNFNwekV6dU51dWQ0NXhpSU5NVkdBVnBmcUk5TVR4eEk0?= =?utf-8?B?N3NtZXdUTG9Gekc3QjBNKytYU1Z2OW9TQ2tmeXc1aTVjcXpValowSzNFbjZk?= =?utf-8?B?Y1k4dVc2N2k2K0t5am9oYzVPZXMrZHlkOXZXZFM4ajVjRUNESWhTWUxGT3RF?= =?utf-8?B?M1VxY28wV043WjFNY3hzOEczYmVCTFFhSHQrOVVUbXRlZGJnZkNVUTB0ajNK?= =?utf-8?B?OTBWTkFpSThKdngwN1YrR0RUM2xBNGNsUGFUUEQxUkY2T2h6aGpPZ0xNUlFZ?= =?utf-8?B?ejA3RmdjRmhEd2N1VGpXUEVKL1VlZmIwNDJEVFZKWmorYitWVnNVcEtHRTJH?= =?utf-8?B?SVFRUEhJb1dYclNXY0o0WkpTRDVvWXl5VWREZXZoK3pRUnRFeWFzZEFCd2RK?= =?utf-8?B?QkFGNUZQWnpzOTlNbzFGc0xXSmdFTUpZN1pvSDZscERwQlhxSVZVNmNaenNY?= =?utf-8?B?UU9jQmhkbG9JRzFYNGo2c21GQ2NPdWtabU9kRDBWdGlWUFNsTUV6WGlmQ3Fm?= =?utf-8?B?Q1UrcEFyUWh6RDJXU0xpSkpIbjN2NEduZ0hoZURVaythaWVCQnVYSk8wRVJ4?= =?utf-8?B?cWd2eXFkM29WM1FNM3RFVklhZWVwOU1iaDBZaXRmTjl0bnVpbWRJdU9ZM2cy?= =?utf-8?B?YnV5bEQwN2ZqOXlXUjlCUGxXYWV5ekd4WWJUSUt0ZVBlZ2d4TjZ1T01PV2hJ?= =?utf-8?B?QVV4K201alJ6V0lrSWl6N3BScDBuWXE3bVUva3pBdzBDYXM0YTBySDQ1dFpw?= =?utf-8?B?NFFjNTRQdjNvY0ZJdU5VQ1dQbE5MUFRNR25oWks0MnhnKzJ3UGtTVHBmdGFs?= =?utf-8?Q?4/sSqE5oNvxG34lU=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: dd47d251-0eee-4063-73f9-08df1a5ab1bb X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2026 16:41:34.4923 (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: BPhZggX4pK58sNctomqfaTVndnbdnWEVFqawFHp7qLbvwLGGxBRX9a0yY2tjkX5RqZ9TB9Zl5XqfLmpE9ECzvaFISNQ0wc8H+vfatcQmoDI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BR0PR08MB151385 v4 fixes the issues reported by Den. v3 -> v4: * Patch 5: add QTAILQ_IN_USE guard to avoid double list removal; * Patch 10: tighten altsetting num check in .post_load() and usb_host_ep_update(). v3: http://lore.virtuozzo.com/20260914-usb-host_v3-v3-0-c43a834ce016@virtuozzo.com Signed-off-by: Andrey Drobyshev --- Andrey Drobyshev (12): usb-host: don't leak hostdev FD on open failure #VSTOR-137800 usb-host: add migration blocker for CPR modes #VSTOR-137800 usb-host: preserve hostdev FD during CPR migration #VSTOR-137800 usb-host: factor out usb_host_reap_xfers() #VSTOR-137800 usb-host: drain in-flight URBs across CPR #VSTOR-137800 usb-host: re-issue drained URBs if CPR is aborted #VSTOR-137800 usb-host: skip product-string read on CPR incoming #VSTOR-137800 usb-host: hand off the device across cpr-transfer #VSTOR-137800 usb: migrate the interface altsetting #VSTOR-137800 usb-host: reconfigure endpoints on CPR incoming #VSTOR-137800 hcd-xhci: resync isochronous endpoints after CPR #VSTOR-137800 usb-host: make CPR migration blocker conditional #VSTOR-137800 hw/usb/bus.c | 36 +++++ hw/usb/hcd-xhci.c | 20 +++ hw/usb/host-libusb.c | 442 ++++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 476 insertions(+), 22 deletions(-) --- base-commit: f2f4b3de1a1be3360a77ca6ab79762466d238804 change-id: 20260914-usb-host_v3-bbfea86d1dad Best regards, -- Andrey Drobyshev