From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11020107.outbound.protection.outlook.com [52.101.69.107]) by lore.virtuozzo.com (Postfix) with ESMTPS id 0BFD3802A7 for ; Tue, 6 Oct 2026 15:36:00 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qBEYw/Z6kRHghmIIPAdT4Ovimpr8A1atJzZoNbUnYp1Afc7gwAqknqR4XvVPBCgsopGx0KYxCYfUxlGSTKl0fW4dwwxxCYNiR62JVT7mBq0lH5jt3M5ksN45v92WN7x58vTc1uUjeFE66NvZpb7aESYsya3SCQdfxgO+vqFwx8m4vOORsjIEK2DFGRRVPRpDn4d8K/NNTe13hc4i4c3GbcDzXH3WNRPYuj5vxtCBlMWrxxSE2t23Ch8eT0BeU2rhT6CZa5Jjoy9Bkjbnyxu1wsNLCtT7qCIKkpZvhpn9fVdh6i130MZ9DaOVQPCTDuMhc7/Bm9WvJIGJFSA6iluy2Q== 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=SsjziTbPpo8Ckjm2WifbIMzhKDLiswyQnBJTx+YIlxI=; b=hFwR4D6O9REM67/ylxtfa00yU/ROq2pvAMMEmAlOUrvHHtfXzjCWQMFjCVDVxKEBXJux+FfNA9pN+MLX91B3SzyDlQImsyW1lsBbpTZqyKDs8n1fLUy2UCs3EH9RDpVX4SEc5stvaLiFCHvvHfmlKZeuK1ezM9jXQ4XCy+DPethJ0We3UBlbVL3W3OVYb4fJQ9+GTxkhNuF/BKFRM9XX+uweJxgOJYg4pT48S0/tZvGO0Px3UPnQh5weCxWPyEQoBFo2Dv8ndxq4gUA6O0YkEUnKN8p25Y92W/6StxAOrpJNxhr6HqLL3i0ov2H+U4XGcyOKzwANNgMyK3Rh1CDw4w== 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=SsjziTbPpo8Ckjm2WifbIMzhKDLiswyQnBJTx+YIlxI=; b=LAIeajlr/s8WhX+bhRyM9cG5Cp4VBj5fYm2tcFUtpBkQFHOInSsh1AJF6nlePKHOFzhk+nony99lFHV2fayB98RWWBkmZd/gkaGCw/BjlTcJF45UV5EA3SQsgD1x88cdt3kwNC3s8m5NCv8RT/JjIC6A0VNtGccPd1jz9Oi1EzFL8HcvQScm/k4XnjfgBRUY7Y/8LD1Z01FDXAEE2XX6aBWdQfjvJPf+Vd57HuPjibDg6QxDh5++30zk4OWUkxJI45rXhiCOMGzjWFVD7/jfO5HThNsOCfUvImsEc7tzbEJdxeY98IoLmPyiR+4yKDtU3a8OgwQlP+ce5eXXh2wMDg== 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 DU0PR08MB9774.eurprd08.prod.outlook.com (2603:10a6:10:445::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.496.14; Tue, 6 Oct 2026 15:35:58 +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; Tue, 6 Oct 2026 15:35:58 +0000 From: Andrey Drobyshev Date: Tue, 06 Oct 2026 18:35:56 +0300 Subject: [PATCH QEMU HCI-8.0 v7 05/14] usb-host: factor out usb_host_reap_xfers() #VSTOR-137800 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261006-usb-host_v3-v7-5-044f668789a1@virtuozzo.com> References: <20261006-usb-host_v3-v7-0-044f668789a1@virtuozzo.com> In-Reply-To: <20261006-usb-host_v3-v7-0-044f668789a1@virtuozzo.com> To: svt-core@virtuozzo.com Cc: den@openvz.org, andrey.drobyshev@virtuozzo.com X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI5PEPF00000985.AUTP296.PROD.OUTLOOK.COM (2603:10a6:808:1::81a) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DU0PR08MB9774:EE_ X-MS-Office365-Filtering-Correlation-Id: fec5b2e2-d96c-43cc-f130-08df23bf8464 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|376014|52116014|5113699003|56012099006|10067099003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: KZyEij9Dl1gYMbzUUdFGj5EguO5diHz//x6ocDfT6glcul/4NkxrUifX8sgnhxXzQf8YaDV0wdwhc53PcaI6vVz/Ehga8C7S/YX1wHVljpIJD/dbSgtAnrmRDQ+YB0HUYzSvgT+3sTaAWtGh4XTIIcQe8b1+mwZHevI4I1QpStVr7w8J0IUDe6ZBidYsFj4XxMGEK22MxDcjFq63k4TiocbQx8Gtf92Ol5J3PoisGpwsQTLdvw075pCbwrKWYHXbNXwdDhTAbWvzhb5IkxW4xe5gCEvmWYEBNa+dx9//o1JCxQdLeLZPh2jQXkxFkWf+WJQapPIjU+hzNl/EM+EONEgjTwAOhfvuSRq+5P+dI92oNwmLEfGj4k/c+B/cDjpcDD3GKBZlHaTmvW5+CVibVPuDeAdn59FfGTJKmluJzMuUYVxDWHR8fXXmw3GBVFhYen/0P1l5Nsn5Ie5vIOVwr1winzlsHQyUi+1XLPYE50wjAaS6mKWWZHOMwNhhHmHE74B11+lo0oFS73jQBewcMhh0+ISwd1XVbN80NGTrKGb/+H7zrKAjUklN8trejurX1JMABwjFxlN0N/7HLxIMVPr6+VXcInzMtTRNKzRn8PAaobYNvodUXEGGLlKu8l8myWYh6tpIaCQtWjenmQRzMucPGK9BFKW7rchgZqD4q2/0nYFqzDKj59+AOnx2ahxSTqJzmblSKmmnyQwcQ49HXcIrYZWAPhWVqsNwSGQcoug= 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)(376014)(52116014)(5113699003)(56012099006)(10067099003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RU52WWo2RlV0NGZOaVducWpwS3llOXhPWjZYbW9JUGtHSXNTcEs0a3JKRmgw?= =?utf-8?B?VmZEOVJxY3NRM2NNOE55eDI4eFc1VEZ6QTl0dkRHdU9GbUhWOGQ5SS9jU1Zv?= =?utf-8?B?YXRxSERxa3g5eUxMNGc1YlpXdG1ta2FCR3FMRGc0endyK1ZSWTVWMjIxMFZk?= =?utf-8?B?VmNqZitJUnhXZnpHVGV2YUk5b3UxOW5FRUJJTkh5S2pKbW9oRnZua1pkQ1I2?= =?utf-8?B?Ukh1R20rU2VFRU11cFF1YU9YNDBaODN3NmZsTG1VcXNCemYxNzVaRDBud2JZ?= =?utf-8?B?VkQrU2tPV0lHREx3dUZiVmFibXBOUGo1QjVqRHR3eGJVK3BDOUdDcTEyTVkx?= =?utf-8?B?MjFqRFU1OVhvWVF2VnpQZ0JIUjFjWGxmZ3FXR1h1ZFFicGpmWXA4MVR2Z01R?= =?utf-8?B?QVVyYXc2aFlRRk0vdlIrejhSMUNSaWM1ZXo0NkRlRTFBeFRNRnNxUlpXRnY5?= =?utf-8?B?TlZYUVJKaDVxVjZZRVlFVzZaQnVUWC9wblA2dm9oL0kzVVcwMnZqTXBiOGl4?= =?utf-8?B?QStDdU50MDRxaWJOclYxT0ZMM1pZMW9ucVVaamZRL1hBdlphcnVDSUlKS2pr?= =?utf-8?B?bTZoTkF2VUNyWUhtZXJpbXRVcThCb0w0N0JjVWdPd2RmWWlPNHF5dlN5ZERU?= =?utf-8?B?TEJ0Q2s2dGRYL1crWWg0cGR6blNqS1BMc1U2dXVKSVI2Z0FkdjFxR3ROM3dn?= =?utf-8?B?SUFuNlM3Q2wrL1BFYW9zOFRsZTdRRDd5NFY2YnBTb1dQUGpNaFhmb0RSalY4?= =?utf-8?B?NnVuWkgxaFVzUXpWSysrYTNPV3BBcVFaYXlUZHgrU3dtbWFYVEZKMjZTMUs1?= =?utf-8?B?SDhtOVZKZ2duOXQyOUhvbmJsNTJPYU9TUjQ0cUNQazd0SXROdzlad2ZFQStY?= =?utf-8?B?SFYvY1F3S05TTUVhNzAyWWtXaGNkNTdlSlp6TXNxWVhWY3hDMlBtQmw4Z2ZY?= =?utf-8?B?QVNCMHk4M0ROT3VyNDhZcjdmMys3eXU4SmJyTXVSNnZMM0hLVVhBNktrQmln?= =?utf-8?B?dm1pMDkwTktoK241Sm43UlRYZFhhVkFlSkpVOFIwR2w0MytNbTlMc1dOK2Z2?= =?utf-8?B?Wk1pQ252RXE1ZHdEbU1sRTFqQTZwNzZhT3VZbGNJNm16Ri9rZEtTOHdscTZo?= =?utf-8?B?NWltaEFpTUxKU0dMclV6RDUrcGQ4NE4ydmNDbVorSnRMRU1zWTBjSVB2OU83?= =?utf-8?B?aU45UmN6cGZCeWpRREJSdWlncFZYaFpHQ0lVM2lBUjFEZ3hzMXd3V3drakJK?= =?utf-8?B?MVhSbk8vckhIUzd1RjBBTEJRR01EYThZK25nbDh3SEFUVXZiamJ4MTl3L2tL?= =?utf-8?B?ekFwSmtOREtIOEI4V2tzRm05N0xwUEFqME8yNW9xR2l3UTF0eXQwOW8zcGIv?= =?utf-8?B?eWUxRXhYWUlDYnNQdlhYb3hjTFFwSEg0MER4b01rUXIxZVFSZ0duMlZVNWVD?= =?utf-8?B?Y1BxMmhkYlhheHBHUTNBMWdwcklpajk3cUJ0QnpDR3g5eERiYmNXUERwTmRi?= =?utf-8?B?Rkk2VlVBL2huUThTQjNUNXJQMUlicjlqL0kyTE1XM2lzVEFMdXBBTGgxNDdQ?= =?utf-8?B?dU1UNzRyRzF1YnJoa1I2aXBFaUUzVkxWaHFXckRyUUwrRzhlNGllQ29MUTYx?= =?utf-8?B?MVE4VkhtQVh3c1RXN0RMY1J2bVJpVUZBTFM3UnNRMFlaTEcwZVhBcE9JWTVW?= =?utf-8?B?YUduV05sK0ZFejREMjVmelFsQnFNc0VIUTlsZVJER3cvZExBRU4xZCtTc2Zp?= =?utf-8?B?M0toSFBZR0trbFVTT2l2b21IUEVTYmFpVXVkOStaRGFjUEs1N0p1a3ZtRGps?= =?utf-8?B?VTU0TXYyVmpSWFVWdDN6RlVNbDJzMTNCWm54R0R0UGxCbm1TNUNoRVQ0QVFt?= =?utf-8?B?akZsOXJxcTRnMDZKQ0pQYTd3OHUyS0RNSURDKzBvd1BWY0RsaW9kb0FvMWw3?= =?utf-8?B?RUVEUVYzQVU0OTNKRXB2d0xKMjFIMGpoSnFjVXE2QzE1eXo4OW5XNCs0Unh1?= =?utf-8?B?V3ZwQXNHQ3VMUjFtaTh6V2VpSjJKQ0EyU2JsQ1QvcEF2ZGdYT2RYOGw4UVhj?= =?utf-8?B?T2ZHT3lZUXI4bXMvQ055ckZzQmxwNk1wTzZ3STBYcWhldmFwTmJndndGYXZP?= =?utf-8?B?dzNIaXIzbzI2MkIvSjQ0V1dwVjQwUGRKN1pRMktvV212WU83Z1N5RUd2RUx5?= =?utf-8?B?YjM3U2NhUCtqSlJheW5uVzU3cGw0L3JVZW5icTFETzZ4b1ZpbVVsbnJXaWxr?= =?utf-8?B?ZExNTTNWMGFwZUpoOERLQWpraTJQSVFwd3BVYm15TXR6Tmx2TVZPdFNCOWtF?= =?utf-8?B?MjMvTFdXZ2oreGpJdGZKREJtR0JudFo0eXdHTTQ4UkpUQ3ltYml5amVDdDBT?= =?utf-8?Q?v4LYUM7uxtq6Y5kU=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: fec5b2e2-d96c-43cc-f130-08df23bf8464 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2026 15:35:57.7796 (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: JaG3cHfeQVkfee9CugceriLHWjEVuNThY4ZyHpYhhmv9KaZIH16IXIFtRjlFSe5TpCynCoWtW6RBp00FZHOOuJfLQJE61o1cirFPU8HyQxs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9774 usb_host_abort_xfers() cancels every pending request and then pumps libusb events until all of them are reaped, with a bounded wait. Split that reap-wait loop out into usb_host_reap_xfers(). No functional change. Signed-off-by: Andrey Drobyshev --- hw/usb/host-libusb.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c index beab8edc619..1a79cdf9e4d 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -1098,15 +1098,11 @@ fail: return -1; } -static void usb_host_abort_xfers(USBHostDevice *s) +static void usb_host_reap_xfers(USBHostDevice *s) { USBHostRequest *r, *rtmp; int limit = 100; - QTAILQ_FOREACH_SAFE(r, &s->requests, next, rtmp) { - usb_host_req_abort(r); - } - while (QTAILQ_FIRST(&s->requests) != NULL) { struct timeval tv; memset(&tv, 0, sizeof(tv)); @@ -1128,6 +1124,16 @@ static void usb_host_abort_xfers(USBHostDevice *s) } } +static void usb_host_abort_xfers(USBHostDevice *s) +{ + USBHostRequest *r, *rtmp; + + QTAILQ_FOREACH_SAFE(r, &s->requests, next, rtmp) { + usb_host_req_abort(r); + } + usb_host_reap_xfers(s); +} + static int usb_host_close(USBHostDevice *s) { USBDevice *udev = USB_DEVICE(s); -- 2.47.1