From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11023090.outbound.protection.outlook.com [40.107.162.90]) by lore.virtuozzo.com (Postfix) with ESMTPS id 4AE50802BE for ; Fri, 4 Sep 2026 19:05:01 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z8LRO+nEbUw7FSk+RCGCrFsmrfZ+n0yVwuJnmGHs7BZrUP50Wdd3DJTBtgBryy+9m8Es69MWqXNZk1hXKWIHTJBv47xGIZ5dYuRSPDhB7JsjNY00uJt/Kold00ox7bJb7g4Jlk3cW6dECy4tVYsAeYDdlD+2TkToybjqLcTzF1kLxDr9ZK8iP+uAWsut+Z0jo/XKWH7l0cJn24HIy+/3Ie7xB7pdDXGS4AHrtASGNmTuogRjCU1OU619LCxgYLShIo7uN2FC7bFlmmuoU1aMuiL5OCAz9JrJdR64ve5BeAy73uCwrzuf4e+BiWRlDt/dm7o+63x2uqT79U/JOj5TAg== 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=tjbqbyD5MSv/iQza42Pw4HTZmPeXcWOTLIbPsMG6j0I=; b=ByfSkHb+/yGA3kMJJZo3ZyhjyFTlvQXmCx3sUo2A2NLA9i/LWfVmjEMqB+yGH/UR0iFeWmD6YQeBxOna/lozQUiTVAwjjcpDVIpuVwr9Jl0sYRwJN4eMqla4CNGnpUt/Bo4MyFKqZ9J3yW+S5HOlsfaO5v1MamQbi5K4pM894JsZFmcoWoHeNvgSOQYldHNC4dz/lY2UyphWbfsB9xVbQqP2HbSypP3tZMFgDVrBHrJvlRFFpeYKzv8kk7Es+6kqNE7+vHgKEe7DuwJAY66PO8oL7ZKbgfh2cdU8Yo2VKds0WW+4qjJTzkrIBY2vWD3tR8bKyZQ4hM7Ph5KGTpAwQw== 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=tjbqbyD5MSv/iQza42Pw4HTZmPeXcWOTLIbPsMG6j0I=; b=Ed/HxOTuysWVLHb1P0kh/P/ig7ucqVXRHwp9tBX2y1nSkGxrXHOSjqmAnPTmI5wIWnDl3Z/iLXTj0K0PRETAhE2u98u7jsp4u/fVwtgUlVS2QeJu1HwMQUy0PMnlvxQZ8wCQeek7gQKo0Lau/rQVqW+7vVGInJokcBkU2W1/5UrhAHsw5c27nKP3foJNIUdLckkZHuUCX+ywTNyuu/vFYrhZjAGyxyur7RP0To4Q38Liv+lLcyO1fOxu7CFhjl5DY3jhwT5/GninIsqeRHFNxtxekZurq00IkvmsTUaOq6S90gLF7w8XCil5adZDP4RWsOjSL5YIg++4g3DoYJBI8g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from DBBPR08MB10650.eurprd08.prod.outlook.com (2603:10a6:10:52d::7) by DB9PR08MB9827.eurprd08.prod.outlook.com (2603:10a6:10:460::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Fri, 4 Sep 2026 19:04:56 +0000 Received: from DBBPR08MB10650.eurprd08.prod.outlook.com ([fe80::1b2a:832c:d136:a37c]) by DBBPR08MB10650.eurprd08.prod.outlook.com ([fe80::1b2a:832c:d136:a37c%5]) with mapi id 15.21.0382.007; Fri, 4 Sep 2026 19:04:56 +0000 From: Andrey Drobyshev To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org Subject: [QEMU HCI-8.0 PATCH v2 05/13] usb-host: factor out usb_host_reap_xfers() #VSTOR-137800 Date: Fri, 4 Sep 2026 22:04:35 +0300 Message-ID: <20260904190443.795902-6-andrey.drobyshev@virtuozzo.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260904190443.795902-1-andrey.drobyshev@virtuozzo.com> References: <20260904190443.795902-1-andrey.drobyshev@virtuozzo.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: VI1PR07CA0215.eurprd07.prod.outlook.com (2603:10a6:802:58::18) To DBBPR08MB10650.eurprd08.prod.outlook.com (2603:10a6:10:52d::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DBBPR08MB10650:EE_|DB9PR08MB9827:EE_ X-MS-Office365-Filtering-Correlation-Id: 40d02786-c961-4d89-015d-08df0ab768d3 List-Id: svt-core@virtuozzo.com X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr 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|376014|52116014|1800799024|23010399003|366016|38350700014|10067099003|22082099003|5113699003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: 0VtKP76by0d5YfQbE6Erkm9hBpFZUd3ahBO0rLVKkPZ7Wkl8ER5I5uy79CuaCVwlNGiUj1hqmN6PhJRM7D7l2Bz5OFSA7oiF4hUvgVx0TxweR3mPX74IW8ax3ywiLqgPrOnitep4flSxlRJmsbAFOm0prMc6Pa8i+m0/UmkjHywKU4eR3HdY7/GcZWpVxTaPPUWn/8fwZabu2o2NgTgErbp1JpGc4t2ZMxmWGZQnOBC4woCPdV9qoFna7M7gWN3hfvvCth3TA2M+iFGlmITSymWM6ApkzmidrZocJ7uacaMwi3tiBcmNqNJGKr6K11PFptC7v40WmRDhlgo+4LW4eQ6OqViAe7N6drzZIhpDkk95Ma5sSTxtPpzR2XAyY9SfLKSjN1Hs1DC3inVYepeFPZbenQ/385s9SZW75/pIQb/6+3eQSwzvlgsJmqk842djp+rxCy4ofIbxGumC9Q9/NNmEeOaUJ00d3PImzyYQoZqz9NMaultfDq5sgh4KEo7LmXnOC/NUoZUwrUrxqdwwixmD4unH4lLhG3+EGbn8Fm67qHaUK2hKC4haqYPUiVBz/J+GzrFkxkEwrpcPrbOf3GTKpewAExlZXpj83wJOiWSx5Dgj4J9BQkbe7Lhy4h2p6D/2BVOclTuXfZRAp+7KojN4UrrV40OK77zSH/2LZAX1wwtzOmG6j5xpLURQii/oVcDg1R1DaLoFBdY/Cx/OiLkZNkP1rAZq5P4kZ/hD2i4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DBBPR08MB10650.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(23010399003)(366016)(38350700014)(10067099003)(22082099003)(5113699003)(18002099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k2ikOPQGXeVivFheXseq5B0mo9x/165SkqMwTOU1EdO5HC4+5AmndbJBrj7B?= =?us-ascii?Q?AH3oiXWkDhm2SExXxZfq43TlmQaoHr35rbVw/ym+098N4SGGXtX0d7aP4GZ2?= =?us-ascii?Q?kC4+P1aVHgd7w1Vvv2+frSss35vTjO6WeMRB/vFe57Ks6KbwbDcmCX965Da5?= =?us-ascii?Q?tMXDYNVd3GhcUwnlqxa9z2PIy0D28Dvrk3u6up/JblTI0gzux5mVKgwz7OAR?= =?us-ascii?Q?y0BJjXaS2urDo+UNr2JsFZv3qGeRERCsyO2hi0+S3m8WjaS5XX4TWuPs3EeD?= =?us-ascii?Q?bySQJ5IXUG9dX6orkkIH+oAnAZ1sz4KdHZd44swUX9UbvCDvmEzdYCZjNCzZ?= =?us-ascii?Q?hO94wHoRjnzi0ynQK+2Mlr6/urd+QZ7bSFAKSByv1ij5dPAJtSzwDJSNpmNb?= =?us-ascii?Q?5vHlcr/QkDCtjxI2AO8YGaFoiMHucNt+Ed3a98rIy0CGJNyR2SGzVK3yuxJD?= =?us-ascii?Q?VdS1sHuQoCWX4nlIO7Mnb8ejZdDR+9nGUZX1a1bg523/Tp5zs+51BAwmfShL?= =?us-ascii?Q?S0AREcRgIsGNTCHsGWZwL/f5lLphM3dOREymCocS2buk+tlF0MMa7vKAzunU?= =?us-ascii?Q?4U8AR3S4SmNtVEGw0vMn5r2XmI27lPYf0aXgVgfQp78WT0WRYbsGGskTdWOR?= =?us-ascii?Q?SnLmuqElprMxPzlMxNbEyjFizEPu0wQ2TgUxodDIDndu797d3D2luFUI1KM9?= =?us-ascii?Q?fwHZlWM4TlvCO6P+2V6X+aLTvhg9EYyg6/K/eQ9y7oEFzreg8epOHMYvfJc8?= =?us-ascii?Q?cV/9PmDfRcxPMmsnAKo35phNvXcwiEarYrFBw4cdir9hlg7UkBzK9KoMWTp/?= =?us-ascii?Q?lqDX6pApQYPy2WBh8xsIhIv46eCYVy9vkG+dxWUiK6+dl//ZFRECS/ETF+BI?= =?us-ascii?Q?tzA+avZBnaLWXFSXeJsJk4YuKRGw+VD8GrsMC36xwlapjEEc869nA2VJaOzw?= =?us-ascii?Q?LK2ZNyKOi3wOuM1B+MwokorZR/4M+3f81V5t8qfCTSXqFTIOckX0Tgr2C7mH?= =?us-ascii?Q?zBPqL0pVDXRo4IlGQtRMlVRQaTFk3Ro025idU0RVNW98li8ipQL1apFa2qdR?= =?us-ascii?Q?QJTednSkBU0974fmWWA3FZa00lSF0YxOV1nA73Yy2zfmC2KnHv+vnYkcI20U?= =?us-ascii?Q?Qx5O/feq7fJxL8IwIYg46KP8iZb9qVMIriJvINz6v5ewhhAAyzlWWcU2O45P?= =?us-ascii?Q?9G0TPODq4q/gM7HMAJBJPoMD3NR99vzA2jKjW1luJzy3VQu2gI4xYAimdzzO?= =?us-ascii?Q?oZqR9YAnkaJfpoXxVQ80fqdcvn5w/05cmb5uo64cTxspMQvsoRu1/lnrL6Nt?= =?us-ascii?Q?MMyCZVdVOfiGsDZN2o9IXzUTtPB6dJrSQJ+y/l40f2gDCUUWobLDZx9u/ygD?= =?us-ascii?Q?KmZy8dnQvC9Xs1XVUNqxGqWZ0tfh/kQUGi2Re9Ogq/5aZU5Rs3msrhJI2j3d?= =?us-ascii?Q?n6A+p+o5uSYmbzdJt4peN3xAcSdCcOzl4RtXFc/58v5SsGFeU8pnKGXEfa24?= =?us-ascii?Q?PHiFVMzMwbZBqha+Yb0p0+p9s/4bbCmc9UHUQUyWUDeVgMXjnhWhlS4LPvhQ?= =?us-ascii?Q?NtfEBOnYPqNPZyhE7W45eQHnETUvAMUKvo61hDZo20fMjRTg0kkAPE6tndDV?= =?us-ascii?Q?7+xhusbsPesMWConsGgsqLTMYhHrbUzdP4+YyBUThfXeBaYc2fgmaMl30xKY?= =?us-ascii?Q?mZvSGwmcL+qVEhS37xAN8lEDLtrL6kjIKmXFr+FDvYa94T0CTH0DWBzwKXLk?= =?us-ascii?Q?Sx9P3eSnibHwSca4OhSPwsO/7wN5cHc=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40d02786-c961-4d89-015d-08df0ab768d3 X-MS-Exchange-CrossTenant-AuthSource: DBBPR08MB10650.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 19:04:56.5407 (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: 9r6/tLmr3BV3zBC3fRKyfp1l7f5+lxfNYQqxmXwpiaaiND3D66FvKnLAiFpbsNG1TQyBnQ/DhyCjUglKM7bSNr1aEhLdb3iq5ZdHIZJGNg0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9827 usb_host_abort_xfers() cancels every pending request and then pumps libusb events until all of them are reaped, with a bounded wait. Split the reap-wait loop into usb_host_reap_xfers(), so that the following commit can reuse it to reap canceled transfers without going through the abort path. 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 eaacfd34c54..d695ba3170f 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -1109,15 +1109,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)); @@ -1139,6 +1135,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