From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11021104.outbound.protection.outlook.com [40.107.130.104]) by lore.virtuozzo.com (Postfix) with ESMTPS id 6DC8A807CA for ; Tue, 6 Oct 2026 16:28:02 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sb8YEQTgl9deWAXYjc4nKzo8VociOykd+WSL1gfc+NEcheuEMeJLe1tkEo0eoierTDrs8rrQHj+ktyoCjnXHjazMtff4SiLKbxHBftw8sS/E5xQ3Rf+DRpxxrQ38SIIz7ZzqNsQPvwDrCsKJ+Ja2aHAjekXm/NHqyCmSL3VnJLAgeHCYyv3V80EPvQKtPGyqGpd0klTsh5fJ3sOx49t8sTrhg6uEaLa1xdGd189fcydrYQAoOG1bohT/NlACZ9dPnoiYvdW6Cjy5tUU1OT4ST18g+YfstbflzIAR1KmP5ukNOUKYj+di40N5MMgKhXsmfugelQVssP2PSoOUg8WhcQ== 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=cJaNKAiCG3nIwaO2GPylO4uBAoJJctLZRMsYU1nHvWi425dPh+IqQS9CQtnkrVeA0uZQoOM7cRURd49nMSMcbH+Q5G7oXMZTSInpkPSdGHLzyVujET0Gbp47ac8l2mxD8aMYa1/i0g2Dqb9SDiHH9ESINrcYz2YAoXajmhXfiH1KPTM9x/8c8jZ8dZ6ZhKLfeYqPM+iMCk45SyjKo9rSTbj1Mla101p6wM63K/A+5xG4gIt0ORwQNOMNtcjVMlnqdt5cRfhE6c6luFDrSI0jRSLxZX7G4LkjmDsJ/Mnoa6QMfsqh0xzJbZIrm83OJ7tNJI6QAqrJGtqhagz+uuLsGw== 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=QJ1jx+FPQyQqe0OrLt0AoCFbBc76YB2xp1L5VzYwRSjD9F39G+LSlYaSH0Zo+k1mgkXovxGEOmo3y+UB+EN+rw4UeaOq1TtoO2RDA5AwRkYSxSo3LuTzKVsn0PbjnHUmHa88zm5tnsJ0tpjUKW8gb3C+5lPnKspzWbf5Q+yLbHomVfIkjYn6Djrh/c1IS+A/YPdyydnJ8+Q5QogjJqZlqu7E5EQ0q4yt3HqkaIAjUNJpJsVUvrXnRScHtcRr/QdMxGNDhCcDOn17xHG33tHKHBOZG7M3D5VLYypVTPilAUIaO6an95iZgIBOGLhc165LOglicxkNNgNit7OWLmYv4g== 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 PAVPR08MB8848.eurprd08.prod.outlook.com (2603:10a6:102:321::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.472.15; Tue, 6 Oct 2026 16:27: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 16:27:58 +0000 From: Andrey Drobyshev Date: Tue, 06 Oct 2026 19:27:56 +0300 Subject: [PATCH QEMU HCI-8.0 v8 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-v8-5-72ae4fb8977b@virtuozzo.com> References: <20261006-usb-host_v3-v8-0-72ae4fb8977b@virtuozzo.com> In-Reply-To: <20261006-usb-host_v3-v8-0-72ae4fb8977b@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR08CA0230.eurprd08.prod.outlook.com (2603:10a6:802:15::39) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|PAVPR08MB8848:EE_ X-MS-Office365-Filtering-Correlation-Id: f1bd6c5d-cd48-466f-bae6-08df23c6c754 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|52116014|1800799024|366016|376014|23010399003|5113699003|38350700014|22082099003|18002099003|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: KZvyxBZyjWSl/1w3erwkfFm6ETl4iXH+yZQT8tOiLKXckm/M28uj7Jap0UbN3Y/yn2UftnUlNWzywBO1NXaGqdVDpLiuRiYpF0v8SqXnTO3X73jKQFJ3JxxycvOfuicxsftVNp27bzGz64alOhPIrlQEYZHZPOE2XzsuuTEa3XrI1cDQHUK2uvNiQSI7waQGPy3noBDKtWCL8sAw9Lqh8KX2jUMZv1lxwXd2DiGsu66g1EqRh66HvnJAf0i3dVc48cSvC4R3aRyrjJXAr5u+uM4F6NlTnRGVidRwNCiG83wwWkwlasnBs3kpXt2Q2X7uuJ77ASmvyfB5VPPOojd4RAVRr+BjciQs9U1LYguYkEWGICQ8RYRut27xRspKRTpFdmc7j6SVTke1hf5ZrN9bl0F7CDFiDEplimFI3WfOVWUWI+/ghqX/WA0NUL3fc91xuYnvu4U6m5U5vJ8acNf1PVJegdwKhvKyUI3zSlMpgXSGcY4gRi85OEVPxPDBAkjGROlia6VQzVO0cLyrR75/Oept7OuwUZVZvo4NSo5KnSQ9qNRRxp5060EZwcurg4wUfdKnRxrf1quYgJAEA8wnajKvYX9SDzKqjVzxE4dJHxpCR4WwAHwjSVTJVhDr5WWa/+GqsPab6Y7uqzul4B6vLTCJvVeVnT84COaXUl/oLp1W6qnyFXSt4xwEPteKOgqE5r1XCUwUA7t0wKNPgBsZiJZ/0c4hedlM3sdVBk92/bI= 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)(52116014)(1800799024)(366016)(376014)(23010399003)(5113699003)(38350700014)(22082099003)(18002099003)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NUk3RCtTanljekFtcXMzTzFEN1o2REhjNjgwUndjQWdmYThxTFhFSDY3cjUv?= =?utf-8?B?NEIybFVDUDVlOEl4UnlBU0F4YWdiN0ZoODJ1d21QNkRtMWp6UTdzQ29DVDJW?= =?utf-8?B?NzZCTmVzYXdyZUhkdnU4OWIwcHhaWGZyc09XTklEbEs1M3dTalp5MXovUVAr?= =?utf-8?B?Y2ZmczF3NXBMYjVOeXlROGN6aTJGaE5JblFvT2V6elNQbEFibEFlSjNrY2tY?= =?utf-8?B?dVlTRXpJdmVzVk02NGxOR1ZyUEtPbHdXSkJmQWU4cXlUMk5KNWRhL1hha1hj?= =?utf-8?B?RlRHRUJVQktJRk9MMUF0bmFBUnN5TzR3T0xLS2VvdWd5bnh0RHBUZDBDZ08y?= =?utf-8?B?U0xXdXVOUlBlcThWZE9xRXlJWmxOVlNtaUxTRnA5L2NKTE0vaEFDamtXNzB2?= =?utf-8?B?UE5mWE5FK3VMTEsyakZ6OUpKNVZrVnFhK2xQSFJjSGZWQ0ovY2RrVFJCK0xZ?= =?utf-8?B?YjYxYVhsYzhYd0dPMEVkRFNpTktuOVV2NVYyMUxBRWlzUUxlRTBSNXZLamNr?= =?utf-8?B?a3JpQjhYVUhSL1c4UlR4MGd2MFNnNmd4WFp3QkhNM0ZHbytJaTJtbXR1SnVF?= =?utf-8?B?Ylc4amxZU2xCQWRLTGR2VjJxZWw0RnpYb01MR2twVFJtWDZXVjh1VWtoVEpw?= =?utf-8?B?VW8yQU1pVEtyS2dSRU12U0luOHdQTVdVbVZvY1hOZjlVazZqb0FXSXpsV0ph?= =?utf-8?B?d25pVy9kQ0RKaTlBMzQyZWJjOEhDMWxUNStOdW1HcEt0dHZ6RWFOb1UvT3FU?= =?utf-8?B?cTBhanBiRS9rV202ZitLY3lhQ3JpZ0hxcGNTWmx3dU1kZnZTbkRrald0TlRS?= =?utf-8?B?SkY5ZUdHckpnRmZacG41dThtK0pjYWdPSVhmeGUzYzZwL3BZVDV2SEYzQ1Rv?= =?utf-8?B?Ym1XOVFGTHpsMUpKTFF2UmMxd3JTVDhzNzhOT2pTeHFybkZma2QzTzRRSkNn?= =?utf-8?B?M01VWEdYbk5VSDJMeldqQkZubFZ2MS9UY2x3b2Z5VEp0VjN3UC9ZZ2FsbHMr?= =?utf-8?B?WXgwWTZnbVh6YS9tM3dqZ3VKWGh2UTVmVWF1aHdQcEJyUTdDRFlkN1F2cW5V?= =?utf-8?B?VjE5TytHUnNKd20zYnk2c3ovZEpHYUwxYkVCZ2dWU0x3V3BGeGxOQ2xoM2hr?= =?utf-8?B?ODVKTll1VGFxWkhJRWJxNDJQZmNocENtSXFCQ21mVi9tZ1JnWHl5WllOS1F4?= =?utf-8?B?U1JRUUgxUEtLOFluOWlCenJwS3JnOENXMzJhZE1xeEMyRGFnUEhuRkIxdzcz?= =?utf-8?B?YnlJSkRTdWVJTy9sdFg5U1VrbkpQSGZlQjJrTjFZcFdnRVp3V1AvSENRU2xj?= =?utf-8?B?K244ejlMMVBwRC9rb1lrQ2VGbm5pZGF4bHNBMlUrY3A1K2ozcU9PbTFXcUtx?= =?utf-8?B?c2VnVHVTRyswMEV4bkR1R1gvUnlLdUVnR1pZTzZqTTJWWGx3MVc5SnZ6NjFH?= =?utf-8?B?bjJxeDhaQnpPU0NmcnlFTGZDNHlxMnFrQUo0dFpzTmNFdWVmZUZjOFZKNTBr?= =?utf-8?B?TkdyN3haVTZOWjl6dHJGN0RCN0lVQXl6R05WUnJIMlpJV1JocGlCSmRveVJv?= =?utf-8?B?MGN4cDBwVEZLaDhvQnR1c1VhamR3elp4MDRKMDJubzlYOWI3bUg2T2JsNE12?= =?utf-8?B?RytaMDFGZWZGZFZCalVyRUdFdEM3ZkwxdUxDQkoxeG5YcmZVQlBRSGxQUWYr?= =?utf-8?B?M05pMU5zMU52RjMwMWVQNkd6akwxQTJ0NUcwNFE4Ty9mcXdNVG01S3haZ3h2?= =?utf-8?B?M0FWT0tlM0xqY3dvZHlDa2lMd2JmNmQyMXI4cWF2dHZJZzF6dDFYeGxCYTBF?= =?utf-8?B?TE5BSUhnK2pjQXEwT0hBdUw0Q0VleUFwK3lvMnp6cXdoTkxFSE1VekNwZlpE?= =?utf-8?B?U1BzeWF6VG8weGhNUlBtbUJ4Vk9EcGhObnI1NlJna0hKQjJEUFFBMmNOa0ZQ?= =?utf-8?B?QUh1K2NjMnFUR25WWG1IanJmTHVqTDlXeUFxZnJ2aEQweWdZU0E1dGd0MHFk?= =?utf-8?B?Zk5oNWs0bHFHNVdEOVV2a3F0d0NQZ3c5STh2SnNvUDdudHMwQUE5MGNYQkRy?= =?utf-8?B?TkpxZ0tvVHJxMm9EVS9IY2luVTB0MmV4K05jUG9XTjVBdThTWklMbFZZVHVD?= =?utf-8?B?NVhSakFzdThHUVc3cDJtUEdWbzFiZVdmd1dPWUpTSDdYZm5CM2s2TXlSVlVF?= =?utf-8?B?VElMbEtZMlNSemlEOFAzNU43VE4wbTcwR3RaRnlMWVFSR2U4SlFEc055L2lj?= =?utf-8?B?aFZ1OWkyS1FkMXBrQmpYMVN2UmtqSmJxTWo2eGlwbzlOUHZtNFdrZ0Jxa094?= =?utf-8?B?YmxrTFd6dVI1NFJBMVZhRkJnZGxONEtoSWNWVmVHWC92S2RtU3JGenNGbTdn?= =?utf-8?Q?3tk3NJGz7U30yTtY=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: f1bd6c5d-cd48-466f-bae6-08df23c6c754 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2026 16:27:56.5796 (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: 0J4jauqRHaYhbRyoLGo9xN9wIIFd2lW2wM01qQNr6uWmIlmr6eH4ux4z8eYIH2VA6s+LubAAB01qdviJUNhLSMrhiwuqjaS5R1JRIRmDp0I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB8848 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