From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11020077.outbound.protection.outlook.com [52.101.69.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id A20D680674 for ; Fri, 25 Sep 2026 14:11:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aB3jrf1zGU8mLdlEaoy4X5NsCPXlyG3UNUkq8cmSdBNVyncsujIJ1tEh94byWQ3wPlTvxnw4dH4+MoJ++iViAwERQfFKmOOKQpdfRQHn43+rmjyqKKQtewOrz+YIdi3ZABErKCKLGhZQ3YRccwxqdhOEo5dhYJjoOSUfbEjGmeHgNXZlkG1JP7WfZ6NwOujYKzpQa97p1dhZxyDP3urkqtNdtOxAgSQHFRt8Wv4LY7SmHCbCMKChYgilOH8czcGlUuODqEotyLYxjCYSebsQAF0YT40AgrpDCJKVFRJgTC/wB5S7tgrj6MgmdJn0HlH/sjzmh2NhMmalmke9VXvAHQ== 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=mFUZHzQuKx1vtYCATztTF4f0xXuERdrLaiK/zWtZI6Q=; b=LuV/+7lVBwjVi8FWmvNBO8/mKYYAkGNMB+1YeDgKWAxvT/KBO9sYiveWsj3v+CTluIVjTRJNCaC5Zlq8FWBOnYZUs/KG9A6IrC85T3gYfXBIcuwmrIYWLXxLdlLfVCwnHy/s0ZW8h/XsI5qPIkXn5cfmGV1rIm26dLpYZoTV+o0vPsag6QhKrls5pGi9r8VZ275C50trzUInKoe+faJeHG/Za791lbQIaQr3IBfSm9/nDhxhyq7C80u7jqGSS3VgxDE9KWbyWt1p8A8lQ1NSoHPbZDDHBSBrEvEz31G8zSnXdML7+DhmVZBLGFqdDruW+whTi9Ehp0ZA3GuR0slWtg== 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=mFUZHzQuKx1vtYCATztTF4f0xXuERdrLaiK/zWtZI6Q=; b=hd9e0UJfpg5+unfTohQLoHnffPFPCsG046uJTgYF8hUg9+dGd4FWXsQt3tiwFr0nVsB28ve7b7PbrAaIvv6rc2495CopMuYw5tHu2bheUmvG7W+x9bEVLKZuyU5bYH2FaU8x9mzA5W2XOWsOJmj2L2NJwOTlRnVfNPRAvs43X34tMfvAIXBkLnlhg223QrlEMALchYk1qEYvSj40cosG0s9T9kGn7ycZr0Wy4e7/gswE1ouVYE54psaLSb3gviDx0ptzezjAqmY2gxr/YG8d8rnSfpdtV2oJiM7Bf1S1xWW0xS7m2A0RVGM8A4oWw4VvUuT7FFA6znuT4GDyNZC5Xw== 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 AMDPR08MB11336.eurprd08.prod.outlook.com (2603:10a6:20b:716::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.18; Fri, 25 Sep 2026 14:11:28 +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; Fri, 25 Sep 2026 14:11:28 +0000 From: Andrey Drobyshev Date: Fri, 25 Sep 2026 17:11:13 +0300 Subject: [PATCH QEMU HCI-8.0 v5 04/13] usb-host: factor out usb_host_reap_xfers() #VSTOR-137800 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260925-usb-host_v3-v5-4-e5b21724db4d@virtuozzo.com> References: <20260925-usb-host_v3-v5-0-e5b21724db4d@virtuozzo.com> In-Reply-To: <20260925-usb-host_v3-v5-0-e5b21724db4d@virtuozzo.com> To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org X-Mailer: b4 0.16.0 X-ClientProxiedBy: VI1PR06CA0178.eurprd06.prod.outlook.com (2603:10a6:803:c8::35) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|AMDPR08MB11336:EE_ X-MS-Office365-Filtering-Correlation-Id: 08b48aee-b67c-4338-c7ad-08df1b0ee436 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|376014|23010399003|52116014|366016|1800799024|10067099003|56012099006|5113699003|18002099003|22082099003|38350700014; X-Microsoft-Antispam-Message-Info: vR1KP770vfiSSHtMtxTYxu/2kq7gmnbJIYzC3ouQ6ozYIL0bKK5v7hteQKtDh2vyBbQDMXE7lARNZcdhUO2gYQ8Ix85x2R2hYKUHGq871iawYbsUk48ey8CiouvGJ9hfhbOsHShT/W58YCG7chRZZGh4ggmNe8urvTKW+IcWOZ6c0LBmC6s8iRlPo+RsFDhdWtMStshe07zrV65awop+S6/TPQYmHPY7phCVbd5P4WU9064rjuaSxTsroTcQimk9Z2IJuycYVfM8Lt9tHgdTViGxEYMmY7i3b/62gikcId2c7mNOSWfw6WhGsrpE/1v8l6Ugf054Df3wjhRPO/bSy0W1C5fnETzbE8RVhqqM1wPBGmqFn7TLjVsIQeJcc04S5DmnOVE9P2lqScBUaB7weE3liRbfqP9P2yj986qrYvyZRPVJxibJ0J00ODb4Qpc56lc3BWottCjm7UIznzICwoVGM88Dgi/AVHOQXSM9GooOlTGrzdPrCT2SyALeRH91syd/BBq1gQO3dfN4MPV6su/qoZ0cLQd05SidP7MxPeZ8aaBgIaIGaPW1kM38wgj5qhGQcfqGUgYj28cF9o2adLwSTJ37VMyvihvVhSxkVmoXCXYO77jB4qN3B7LrzWM7iZOFbYXmc2DjdHukurLwOwS9szA58b16tcgV4GEADuAkNUhApIHd1L7KyU54GE8a9Gj+il4vjb6kJuxW3aiqgZuU45eEPMO0xb5MJjhNdoM= 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)(376014)(23010399003)(52116014)(366016)(1800799024)(10067099003)(56012099006)(5113699003)(18002099003)(22082099003)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YVd3SVZOWXBYRzRUc1dNUzNtOVZCMjJwMlQxZVoxOGxjOWJ6djBZdDdyQXpt?= =?utf-8?B?OWU1T05HbDdXdGlqV05TSWNTYzMvQ01zMFdTbXhOZFU5Rm5pQTZHR1ZFdERF?= =?utf-8?B?OTFNWGtVS3dvUTVTWVZsRzBKbXM4U1ZYY1NlS2t6MnlzcWozRjVocVg4RC85?= =?utf-8?B?cDNyZ0tHcEZnWmREZWExOVU0S2tkenVjajluQmNnNHIvL3VwTEdOVXAwWmpl?= =?utf-8?B?b0VKc3hsREJtbkIyVWxvSm91d0Mway8xdDZNaEVZczhXRTg3RytqRVNxOVhS?= =?utf-8?B?UlE2NG9qRHZONkcrTy9xNzJDL202WmdnRUNpdWhmOU5pckpmV3EyMk4xYXc5?= =?utf-8?B?UmJ4WlQ2V2hzazltZE5MZmlhTGJHamhrZEZhd3hNUng4aVppSmtKcHl4UDdk?= =?utf-8?B?Q2w0dk95SE80ZkNZRGk2a2gvVlVWUUJOZTlnb3c4RXlQa0xzWHV0VmxKeHla?= =?utf-8?B?OHBwSUNvZ3hXZFFBckVqcm40RVp2b25nU1lwU0tOb2FLWVFuNTZxVDVlRWxW?= =?utf-8?B?T1dVU3hKWmZ3MHhTOTk0bWM4enJzbEhSVXgyY0kwZUFQTzJLU0VDV2VCNk8v?= =?utf-8?B?QnFqcW5RMTFuMEtKNmJTL21Oa0NZalh6TkJWb01mN25hM0FPTGQ2MGFGdUI5?= =?utf-8?B?OHM3N1d1ZERtY1RrOVk5TkEyYVhyZzQzajF0ZTdFTEhraXlTL3YvWU5IZllI?= =?utf-8?B?Q0U4TVVlVDY2b1VydEdRK01PeFpNSE1KTVNQTzhpckpFV0pOUm1jOHRsSGpO?= =?utf-8?B?TUNNaHN4cWREaUtvbWRGY1VtclRrVlV3bWs1VjJaVTlkQXc3aHY4cVdkdU0y?= =?utf-8?B?Y1JOalE4d3VZb2Zna0x5VVg5cWxtd0MyOGlVWmhKYm1FNHVQUGxjaFgxQkVu?= =?utf-8?B?a1IrUkFlbGkwK3FnanpJeENjak5VSmxiQTZzUFpGeTBLbnJzT0xhMGtEWXZy?= =?utf-8?B?RWdtR0RjSnIzUmZvMHRVT3JWYzQ0MXpBVnlhUDdpOTViMW0wZVhRbFhiTGJS?= =?utf-8?B?RFNFVHdaWVFocERoVkJISmxHYm5lWUduMWRac2JVRmpFZWpnUU5nQ0lLYjRo?= =?utf-8?B?dC9ST21RYStuNU1oSVBqNUl5WGxWTDhuNGdRVjVVeG12VHdLUlB6Z2xIbFgy?= =?utf-8?B?SnJTbldpYzQ2bmJOb3ptb25CTjU1T25qdjMwZkIrajI0cEFVeXNiekNRK2Y5?= =?utf-8?B?N2U1RE5QY2VaYkdERVAvRDhkYlJSSWswUUc0OEFZMnNTTEZabzh5T1ZwOHh3?= =?utf-8?B?cmxRZ2Vld2Y3NmxjV0dSUXU1OHlIQk5rUWVJbGVkalh4dTdiTTRZR0FNVXJY?= =?utf-8?B?SSsrTStyVmw3WjU2MDJzWGtDTmpmRHQxK3RoRDBTRjVWRnNpWVlTNnBCcU4z?= =?utf-8?B?WnhiUnYxRG1oZkJLRHk5WStESDZuenVpcFpNTk5LZjNKN01WYUorUEFsYU9l?= =?utf-8?B?ejdISklsNGMvZWhLMkFTN09JUVlRVHRlK1V4S2ZxZjljemJRUXhTNmpzZmF4?= =?utf-8?B?Z0tkS2pSbXJQWG1BVWJhQTRHU1B5ZmhPMS8zVkpxdlNlb1NJaUlJTVFRYStT?= =?utf-8?B?RHQrYmlwMmwzK3dBblloZTMreXJCQkR6bkc0cVBEd3dxQ292TVFmZm5hS3Uz?= =?utf-8?B?Slpwc01ER2s5Y2JIZDBVQTFqQVM4Yk0zaGNSdnpCTVdxMDhxdGlxc2I0WmJF?= =?utf-8?B?MGh0eHBKdm9BZTdIeGxEUjgwUnoxWTQ1SlhqZklvampKU0xvNFF1czBYMzM1?= =?utf-8?B?N3MxejhMM25zNVF5bHYyUE5qcWpJdUY4Rnp2cmFLa0psR05iZlEyOTRNTUdK?= =?utf-8?B?VXFrSnFKdDVnMXdhbURpK0hYZGd6M2ZJRUhaaW5qbm0yV1cxQzNkTlhyUGhx?= =?utf-8?B?OVphSFVvUDh4NFpqQnRtT2NjY29YSWFwd1lkQmZMZXhnMDBVUTVKTmhDS29E?= =?utf-8?B?RmpreXI4ZjhHSmpnUG5DWnVRRS94SFlNVXBBTG9jTmxuS0pOa08zWjVjWGRi?= =?utf-8?B?ZG5uMkN2Y1M1Q25YSjdjOC94MVRxTjYzaDRaVEM2RWJjUnk4OHlWYm85UzBG?= =?utf-8?B?YUhsbGpXY0ExSjNzQ2QrbVlyVkZCSlVQN2hVMm80eDRwQTJ2UjdScWVmS2pU?= =?utf-8?B?ZHpybW4xNVJ5dWpncXdrcCtpeUdXaENNSnhjMGMvTmVrOE5QK3hmbFRYd1Fx?= =?utf-8?B?dEZMK2Y4cnRBSG8rSWVCcHo1OE8xQTFpQmZqTldCQTlydGh1YXlTZ2J1Zmgx?= =?utf-8?B?KzRpRWRsb2pjL3AzRzZzZzc4dE9XM1NGaDFCbkdpZFNCbyszODd2a3l2S1M4?= =?utf-8?B?VGx6VmprNXB6NVg4bjlZa2I1NDNDK3dJbm5JeVdkc21FL3JEdHkxazViTito?= =?utf-8?Q?oHpPt61lxCVGCIkA=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08b48aee-b67c-4338-c7ad-08df1b0ee436 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2026 14:11:28.3471 (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: Z+hZIvJa3txxX8NfrHFeaSEQtzZKDRVtHHLm+rUIxi/H6P4/xGIB7XqsAXDx9YJvteRTXynjWgbx45wle7r7vkYNOwrBAM7mXRnd6XvY40c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11336 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 b946b0ef350..9b70d6deef9 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -1096,15 +1096,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)); @@ -1126,6 +1122,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