From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11021082.outbound.protection.outlook.com [40.107.130.82]) by lore.virtuozzo.com (Postfix) with ESMTPS id 5E4568017D for ; Tue, 6 Oct 2026 10:34:42 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VMOTgUxfpG2ZB4qRKWEy8EdBs/K32HAmVryqDRlGIXM5Gll5SQpvtLfwQJaRibC2HyiWCpqNg0rQD/SK0RAgm6wNvZaDKIG+vSIBeNJdfjGtFZslhsHijrQR6FrEpa8uLm5Zd4sF5hcEfOkvCIxg/h7vuV61+3VU/h/whc+PQWBeviIbXaGYIukYSEMxdRDJCqX/8aNULtiHHZJqrKcQ0zeKAkHXPijKUq0n7addDFxEJ5ynDcRxt/GRQHpGDj6Mji5b/SKK9HT6E7TNPowvPttyP3EP+MTdC9+M0n5kRxhOKn6g8KmBvr6Du84xghsAEnG17v9We/xg9eamJK7zrw== 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=ObgSNoQfpNQEQ5s11Lwj9B8ODQokfiwr57ZcAKPXnfs=; b=BMczaSwLNzLMHwjD4lZdCcip1DSAea8R4aULnJ9Q67wHrlPE0UcsS+OZNPWku6Nk0bt6d0k2wywvP4tKoInSN6LPNgAb7L0NydkIP6eLWaaTOcUZPTRhiRCi2u6pULbzUS/JovAJK4+aLZ0Ctx7/RJlXRKGNBK6qC4eqOzrgTfjm+2Gw2FpAk88fu1C6VN8MfbgYuG2+qEdGbM3mFDtgUoDTFLxbt+xHQi9nXtvgasTNGxzMVfMhTIRS5dX/IgAxPKk2Qf+bRo4L8qFxcNuC/mxqOu+dfEkRCCu6A9vdE4yHcSzgFmtPYkYE5t9fMY/fXVqm7LS+ljlJRWl3saUWqQ== 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=ObgSNoQfpNQEQ5s11Lwj9B8ODQokfiwr57ZcAKPXnfs=; b=VrOG5cy/BW+m6qUSYbLjd0d8qQ9ttu4Ax1uLOTHXPYc/EiyrdjcCWoBHEHNx2pal/tSabtr9qkmJ6VMePc1NUd0n7iC0BKjnl6B0gdd/BODxG2KrSV9wGdfgfKYaUoUJrfTDS4j56ebgnOXfZ8HSlrqsLT1p1ybO0gEZTU+2s3nFiSUla7sBM7FrsfxTdRSq565i/qWVKIrHx1wZNJFn0naEvTf5lpu4P63RWyv8Y51SCHBcjK+x6kwAXzuCCoEcTDIr6z9YmsE7pM1yv2gibXGMn0/HuDNBLLq5nSYlgEtFK7ILUIO97SrKtMabXfL6lebcDKwyQlArPxUrUnzO+g== 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 GV1PR08MB8692.eurprd08.prod.outlook.com (2603:10a6:150:86::16) 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 10:34: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.0496.010; Tue, 6 Oct 2026 10:34:33 +0000 From: Andrey Drobyshev Date: Tue, 06 Oct 2026 13:34:28 +0300 Subject: [PATCH QEMU HCI-8.0 v6 04/12] 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-v6-4-8688ec9576d1@virtuozzo.com> References: <20261006-usb-host_v3-v6-0-8688ec9576d1@virtuozzo.com> In-Reply-To: <20261006-usb-host_v3-v6-0-8688ec9576d1@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR09CA0115.eurprd09.prod.outlook.com (2603:10a6:803:78::38) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|GV1PR08MB8692:EE_ X-MS-Office365-Filtering-Correlation-Id: b775d7bc-510d-48bc-3275-08df239568fb 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|52116014|376014|23010399003|1800799024|366016|10067099003|56012099006|5113699003|22082099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info: 1uwf2AYyHfNL84f+XDKTJAcrdstIIujgI0IREYU1aLzz0RYyFvM3jw2Iw9fwseJPt+v6rHxHKO4gVaAy6l4a+O9dl9BKONHdcysfPzOnHYJx8BIDSR0VBgRSStExPCRNmRXe0YlEqg/c79HjD6TAi/S2wDbewCFBxrf+qSmGu/zDjeVqnqwbPNc7HhJ47cEU7YmzI1DEVU7O+3yGE1RC8/pO7vUUkvA/meAKDV1Nmtzj7lghedGnvxGyy3Eseqj+a3T0kmYBY6imd/JCjyEln+SuoYvPP3qVdHg3rKIMN02IMPQKnWUVOf3539kNrlm3Ph+1TMZWAwP+bW1lT+1tH/+JnslPKBRsFNX/O/STWH2WVeWUvGoJ0IEEVLP8tU+N4p8eOU1nsoxFw7avT1PV7sJm/cS8xDunqhWpYfIPFUSqEsPzlGAV1tJTf6lbNHQmV0JyFSdbCdnvPxZT4CXjjp7oYweFtuBiP4kX2mg3Ui3MjDMGY0v0fB9TKtUNEdGlHFTaB689vwQ0kISXwYWispDgJCuF6fDQIMPnxDuHTQtwAYEk/jmfdPhb5TGg7AQ8pamG21xpxDQLZ8inP9/0y5Q4gZEUD5RjoEjTzT2fyLJKsAPT4a1h3kUCG7jczSI0Xbett1K5Z6wtJ6FL9eP8gTeAsqiK+s666BXECBVV0xt2QlP+m18wYs2mEI4ZrCOIknKF/LBp5dZhhQY6kfpvfjQij1pLQ1Z9aON5q0wwEBI= 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)(376014)(23010399003)(1800799024)(366016)(10067099003)(56012099006)(5113699003)(22082099003)(18002099003)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dVlaRzRQWTAxMldPc3Z3dGxpNm11VXdEd0dGTlhEK2g2V1l3c1hpS2RGVjIy?= =?utf-8?B?WnRuSXlmV3gvT0FRMkZDOG9rMXN0N2dJMUFmWXZSZnhoSWFtY0UxT040TEpR?= =?utf-8?B?RDUycHJlRUk1aHdOUGNpNFMxNFRWREhxYU51RG0yOSsrNytGVURQTG5mY1BZ?= =?utf-8?B?Z2w0VStKY1BDTEd1Z3R3Mk50L3pZbXhGN1NndldpYUVENW9hbGE3OEtzUW10?= =?utf-8?B?aHFkMEpEM2U1dkdKWmROc2k5K3hBRkhwSGhKN0czQmFsUGFueG5BNTRnb3k4?= =?utf-8?B?RkwxT3NoRDZJeWowSzd0cEVaWFFOa1lTNUMrMktlVHU2OHV2VWhobzlrOVZQ?= =?utf-8?B?UkI5d1RpbVkwZXNSL3JGcTRkU3pJQThZY092aEpXL2VqYUlyR29ZVU0yVks4?= =?utf-8?B?M3NQcmhjaHA1clp4OFlyeWYzRFZuOHI4aldTRm5LOCtrSEhTOCt5RWphZ3RH?= =?utf-8?B?WU9zcnpwZ3BHUzJIN1ZiendremtYU2FJd3ZtOGdadVFoTDZxRk13L1M3bnBo?= =?utf-8?B?UktOZzZKaHRnSHAzaXJwZkZtL2FKSmc3WmhsNXhSTXdMbHU3cGtpOVNZOFdL?= =?utf-8?B?VnVoT0duemdPbStwWktCS3dTL1g4NXVqa1l2WVphbHNMY3piTXFKa0pqZHk3?= =?utf-8?B?NmMwdUY3SlZTK240YmJ0UEJCa1Q1YUlxblpneWs2dHErNWxwNEN5bjUvTU9y?= =?utf-8?B?ZmhkVnFoeldLSzhOTGhHODlsMzZXSVFmaWxXakgrRjliTGsrckVTL0poUVBx?= =?utf-8?B?YlNnNE9KbGNBMnBrbnpOUm40aHY0YzFDWTkwd1VMallML1BwckFpWDNldEtJ?= =?utf-8?B?NWlXYzc2Q3hMZlg1UHMrV2ZBOXNPVzc3MG1XQzNja3ZFcCtqbTlVb045UUhh?= =?utf-8?B?R2cvL2NEcmhnR1JXTlZnaHZZS1ZmM1dqRjVDNUhxRCtPanMwK2ZEM05RM2Qr?= =?utf-8?B?SEpZWXVBYUw2cWJXZk5wTUp6OHBKb09LTXk5Ulk4M1FNR1pFZ2x6UjBTQUd3?= =?utf-8?B?Sk4xWkl4cnJXc1BTdWlSc3RvTytQZUdyRStMck5iQ0toKzhNdEwwcEFUL1c0?= =?utf-8?B?TUc1dDh5SzJHU3Z4UGd0eXpiMzh1NUlPYmczTzNhSGNnM3Evc3V3Tkd0TmxS?= =?utf-8?B?eGlaWTBKeUpya05US20yWExoZE5tZndkaWxHa0hyZEFlT2dnVEhCMWE0bWRL?= =?utf-8?B?TityYVVOMmxRbVJqdkhwRE1JdUE0Uk4rcWJGejVlWWYyeG5IaTVSMytKU0No?= =?utf-8?B?azA1N1QrcGNTZk9mWGlzRnIxZGZnMTdWcnpaRHN6QXFYVis4UDlRTVFNekNk?= =?utf-8?B?eHdJRGRxR3pyMHAvYjFYM2NmZ0tVb3ljY0dENnJMQk5qMGFUcXRjSTNibzNu?= =?utf-8?B?VzZ2eGtQTGJHY0t5WWxXVUNVK3kzdko3bnllK1luTG5qN2EzeUxXSWQ3UkZO?= =?utf-8?B?Y0QzV05WZDB2Y2Q4VVlVM3R5VDJjZ29iZG4wa21nNGdlNWUzRCt3c0FpZEVv?= =?utf-8?B?MTIzbEErRjFkVzJNcXdvZjdaMVEyV2xmc1ZZN2tOS0NzdHZ1aUxwV3VtT3ds?= =?utf-8?B?MmoxVjE2N0Y3RE94bkFnWVY2Q3VBMXA2VGJ0Uk1mMm1UWkFGQ1BleGhWUFJF?= =?utf-8?B?RThpZnc2MjdSSWYwWWFCS210YVhaRWZRR2NEUTlIQ3BnaXhUSGhSV1IyYktv?= =?utf-8?B?c1cyaW90QTZHalduTm5rcmJ6RXRmNnd2eG9ZMGRmZzlXUVMzTkIxRXJ4Mk83?= =?utf-8?B?Q05RZ2xvMHIyNDR0b2NzaGlZdkNEamV3MDQ2a1VNVnowcVpDZmpEbUEyVWZ2?= =?utf-8?B?cGpRaU9ZWkFHdi90ZHMvUEZDbEVmYUE4UTNCYVNrcjc3NEJHYlIvQ1pBRmd4?= =?utf-8?B?eENpOGNwL01ydDkvTTVVQ0pJVEd0amIxckpPbTBqUk0zM3hLbHliMWhRVVh3?= =?utf-8?B?ZllVZjdEeGlteWFpQ1oyMXB1ZllERGdiazFNdUN6dHd1TVRxRFBPNVptSmY0?= =?utf-8?B?OS9iK2lsYXNSaCsvcy9wUWt5UkRHSmFvSTR1MHBKNEwxNXFDOUgxTis4eEJR?= =?utf-8?B?dEt3M2ZnVURrNVdQeDNzMEJYSi9UbEg3NUVoODJVYWhZNFNCR09SNHZvYnFL?= =?utf-8?B?VUttdGFYOVZQT2dQZW9Bdm0yeGxjQ0IyMVpvYVY5MWNleVp1ZDkxSlpUUGha?= =?utf-8?B?T0xtcWxPYkNoSnFlSEZDUnp6ODl2RUlxKzJtQmw0bEE0eGRuaDVmTnRiMTB6?= =?utf-8?B?Q2lkM3RvTnZVbXhzaWU2cmE5eVRwd3h2RjF3dHkzTFdIZHVxN3AxeUhoMFI1?= =?utf-8?B?VzV5SVRSVGhhUGUveDQrMWtFRFkxeXg4R2Ruand0SlhpU0NESncrUFJUOGtW?= =?utf-8?Q?z/l9YZSgGr2iP8J0=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: b775d7bc-510d-48bc-3275-08df239568fb X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2026 10:34:32.9315 (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: j0LU9Segx4XqYpMLVSJ7HHdEHKOwGCldl+MN6bIevl9WvMn7IZGz//3Y1f/LHoJNlUl4PCletwO9GynxIQ02YRkfoveHXnjnLXz5JimA/0A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8692 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 f601b85b4d9..5dc3308770e 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