From nobody Sat Feb 7 04:13:11 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=zenithal.me); dmarc=pass(p=none dis=none) header.from=zenithal.me ARC-Seal: i=2; a=rsa-sha256; t=1655057498; cv=pass; d=zohomail.com; s=zohoarc; b=RInnLWMpCJkwIAmQJPO//LbRUR0MEnW/TQ1ng7eCiulfJKdmmBT+OANAYnQjqheA+PDFg5U7g0xENKtPbqBS28+iFT9YcUjmY6pw+ZD6FXHP9NIuUTLSAPGsUejNLMZu6CzFGO5EHzpQCAw0AZdUdrlfpVAwm7eCcCqLknTa0qU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1655057498; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UyGLMs+eTl4NzydcFIYHZV23gkIwPw9mYRMkjcr+N9M=; b=ju2F0v3EHzDc2+7c1IZYYS0bhxzfxdYYiRLF17WgCLhaW0I0H7HXbw/GA5lK0EORXRKjXlggoLEMs+SCKe2MFccCxt7ygiICJaH81O/0bXe5KxsmlXniNlCEBgY+uN/Pmhb6Szu9vBfvZDjKbjQLnGvl+Nqeyp+MshHWOvIcxWY= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=zenithal.me); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1655057498766171.45009018105873; Sun, 12 Jun 2022 11:11:38 -0700 (PDT) Received: from localhost ([::1]:43528 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o0S3k-000430-Mj for importer@patchew.org; Sun, 12 Jun 2022 14:11:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45330) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o0S2K-0003MW-LE for qemu-devel@nongnu.org; Sun, 12 Jun 2022 14:10:08 -0400 Received: from mail-tycjpn01on2070b.outbound.protection.outlook.com ([2a01:111:f403:7010::70b]:34126 helo=JPN01-TYC-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o0S2H-0005ED-MC for qemu-devel@nongnu.org; Sun, 12 Jun 2022 14:10:07 -0400 Received: from TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:c0::6) by TYBP286MB0320.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:801c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.13; Sun, 12 Jun 2022 18:09:27 +0000 Received: from TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM ([fe80::a162:2f17:bb41:c95]) by TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM ([fe80::a162:2f17:bb41:c95%9]) with mapi id 15.20.5332.020; Sun, 12 Jun 2022 18:09:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=df870xmhTbxoUW5S17e5xEkUgy70dbiF+U8ajkAUS8caT4yYI8KpcfJkehRxm30Eal1Wq8QAXXdTL1wkq0m8O95DIJ0JpDfC2HmA1822ps1cUeeWRqLPZuS+MMONC3GCUcQJ6b/OzfAU9k+xAgx10Oc/Op2gT8MBgtguKhuhsUAUn5EPZWdNkZxzJ9hlxeTZrFWndl/zMuFY7ne8Bh6wnt2SHOydl1hLDG+9QaChHXlB4d2fS3TOv8i9qskUWKKRmOfZ8vEZgZchZUP+4pkE9epWW8+Bdi23qqDOuoQ4Y0FtDfBJaDfehgFNv0uFKxFtAU0iVYwfOmM53DtUuxrVmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=UyGLMs+eTl4NzydcFIYHZV23gkIwPw9mYRMkjcr+N9M=; b=IKoyxIkbENURdKupml/UbWdmvx+5ZQDXtGsgN08HoMcVj0V/XMzSVBXKFYRMgy/047Gjn34gDC5jgdbizDmzBfp5tmTbU4IiRdv2Asop5+vZXS4CiqNSkk+jRExRMvhMJt0bub/fzE9TlZNnEC9AKuzJwBI9Bsr9E3r1B4DTDuANGw3An1rO+Yxh8Nfjez4LjK04kqccBsizf8vPLvHxOb4Ail5q1pXtysr+UI/ZSe8Qco+szxPMyvTc1bJ0HGc5D/C/AqQ/99My+VmnkoeJzOzug+AGzT0oRwsT2YVPN3R8YqCRga2eK97jQ9jGo/oI4bxWd/NX7RGuS64n34rypQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=zenithal.me; dmarc=pass action=none header.from=zenithal.me; dkim=pass header.d=zenithal.me; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zenithal.me; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UyGLMs+eTl4NzydcFIYHZV23gkIwPw9mYRMkjcr+N9M=; b=cwzNJQIUmsSh4rCd97N9wufZSwqGYjioZeWsDWGLmGxZKGHqc7ffklduE1ZF91nsdYk93pEGX5+hN3+/SAKuihar73kOLS2+RAMjEOZ4s+0h3bdcnDUGJzYuc0Gb4zXnyLWCSTFWJOvjbxpTzI0Z9G+U/bA9BYSe15ZumL/EemU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=zenithal.me; Date: Mon, 13 Jun 2022 02:09:19 +0800 From: "Hongren (Zenithal) Zheng" To: Gerd Hoffmann Cc: qemu-devel@nongnu.org, contact@canokeys.org, MkfsSion Subject: [PATCH 1/3] hw/usb/canokey: Fix CCID ZLP Message-ID: References: Content-Disposition: inline In-Reply-To: X-Operating-System: Linux Sun 5.15.26 X-Mailer: Mutt 2.2.1 (2022-02-19) X-ClientProxiedBy: BYAPR08CA0043.namprd08.prod.outlook.com (2603:10b6:a03:117::20) To TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:c0::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9a05b8a1-be21-409c-173a-08da4c9eb03b X-MS-TrafficTypeDiagnostic: TYBP286MB0320:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: X6Prw5XFX2FFQy8N6pbhiW/uwBuOcr997WudcipikZi+dnZNOgRqNZGOVce+RTt8EECsPzFKBPssoB54eBYtePYR8ib5Ln+UyCGObwZ15+1aLucg5fbJfw8M59ve6TlTOGjSSIq2SGx07JEoPczDxvWycvRJBjCoyZCutekN0Ft/OK3zfR5sa5CYgl+b0FpDYLYtouVoxuur1ETc2swCIHHA03xpn9q3C8Fmb7+DuZN93AhPKr8aKpj4hA2MhbyGn7L+FexZrLUEErxxp638oZR7IEDWcFyCmsCf/iC1heDm+QrMxc7cuybRrbU2uiuWxYVGbPXtlhFG0GhVGqbphouNjMVusNx9FU6f3dQvHBusFRU5gpYmc8zc13MKOzEj+nrlK1I4XfvoYCETBDE7rpy1TtDmwi+ZWUVx8AOm9YM3K7AxL2T59cOPxem0uljzbkiRbS+qPiSP/KULWGHYCqemTYJkHsGblieUC+YpOnV64vmb3x79nNPTvM2OFYq0/baxwbj3hp7R14+6cZMGE85hYYyiuNZlatFuHo7HQ9oDjdR1KDKU1VDbZSDXRB53hQfDQ+Iu8wg9trpM1HbCUvcyWC46pu8HjQLSvXw4G5EIhqB90wBoHPXhzcOh5tlDOGfiPkwuo2Zjye3rvYQDJ9VzxUbqMQFGD82fX51s8FO9LysXknGzwUyoGiIRXq2GkMr9dOnLVWPQ0fVHrYfSdCxieUZS6JqZ9EvUU21xWyM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230016)(7916004)(396003)(136003)(39830400003)(366004)(346002)(33716001)(316002)(786003)(186003)(83380400001)(41300700001)(6916009)(8936002)(508600001)(5660300002)(6486002)(4326008)(8676002)(66946007)(66556008)(66476007)(6666004)(2906002)(41320700001)(38100700002)(52116002)(6512007)(9686003)(6506007)(86362001)(3714002)(49092004); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2kkWdHai80/4Y2bf7Hjfwz20TbCZqWDZW0NY3c4hShwhGqwPkAF+939qJRTC?= =?us-ascii?Q?9pdzC3N1PzNY7l7KtjPDDOdalfz6OpU4+Z6iJKWv6Lv832fyW5ZI0+nwJ+K9?= =?us-ascii?Q?2jYg7TSdnDAsu5GKFpbplzVwPdFYpcDcuU6A1CrUlgDw1/xFtGK6u5N8Viwa?= =?us-ascii?Q?cV/UwWzfKvJiCYuYOA6JQmRQkSJufW+6wrrhm7agvXJkACuUgJEGQA5BSNlR?= =?us-ascii?Q?QQGcilEtXB3FAmh5YH8upyrIT6HbGiHJoe9GiCGf3tPBQ1mqIMjhdRj/PBym?= =?us-ascii?Q?+52zZZFaV6zFMQJeGS/pspYLMF1TCOJMSsb9eUKgPHdMhecfRgLgl1wM/K1u?= =?us-ascii?Q?XSUDPx+/Sy6dK2dt4oY1PYGHt5J1t50eIC3TllG3gHjYQJlEUQcBDgrDYiEo?= =?us-ascii?Q?XUcnAwTz82hLg9da2AwKowMvc0xUMi1Gw2vX9Lm7098Tdf/skSvtgEh8So0F?= =?us-ascii?Q?dy9aV246WBdSspVSRY0LNbuM3aB7x5NdDgXe7lw2Z9B/hr1YDd6ikZE7VziH?= =?us-ascii?Q?sSVhDGDOnYqSYIO0IbbTTQ0g8uvuGjGag9H9O5vvshRm/3dmT7N8gwTNQOzM?= =?us-ascii?Q?E73CKVG3Cgi7sPyGU0vxylmF0kaKktuY7cMCavOXWVUvhLak4rh02XQz8Xmd?= =?us-ascii?Q?q/7WdRlwEUngeGLojy/OctxuIpvYvWx7rGU5D0sVz8VtwSL0Oflck/bJmy1k?= =?us-ascii?Q?AB0jM2p3gMybwUWFI81Lh4cgxKC+39vr8qdLXQdyNtmkabrX93LszrGXIXNo?= =?us-ascii?Q?SR2hVlek3t0y8qwPdqzmMXh711rcLjniA+3/CT46Gq6LEtvjMbvTGTITmTke?= =?us-ascii?Q?5WS1dLldkX8zId9yB777PalJhHgE9Vw340H95N41Xu/LNjEqzXXU4WW6DkxI?= =?us-ascii?Q?tY6S1+hMLbydxkIXxBLrdFWrK1cFleo94KVomaiMJBNaENexiGEQgEg5vUk6?= =?us-ascii?Q?4ceJfbkGJrJEb2h9od5rGO+0VphlDnnNDX9zY07Vs2CbLUTjieBveJakIJ1+?= =?us-ascii?Q?HWdYG7q4mahQhRAaKYCGrF92yoEAst39Q0/U6dnMWp4gVQZn0B8AAmBuFOtC?= =?us-ascii?Q?/rMTtqBPXQ0BHAtDpZZcFKhZU6gUa2hb+yc9aNqpSa2IAPrh693ytFrEpgfb?= =?us-ascii?Q?ggyjvd1tNvT64DI90AbSVgKfOyRlZ+0f0ZZZGEyDmP/+EsPxsdQlSyc4dm7z?= =?us-ascii?Q?wC5hl/M9V35A9no3pV/djLUafO6lKaM7tPpUqEai0Fs9qY+kypf3ds1/rb+V?= =?us-ascii?Q?xe+ZOrZ0c9KY2id2IgiS9LcyhZwp/tprz15cjjKtwKHr3kzpEMOAKRvwi2vV?= =?us-ascii?Q?6oRytAqA/OkDlmqE0PwnHsMYthdRanCumEN2k359WowLWj6g2kSzlTBwh94L?= =?us-ascii?Q?rvdg7/Cu3HGJsc+xG88ElM6hn+paJxhMZznlAlAIXE6cIbplRQEQH4a1UAzo?= =?us-ascii?Q?EUvBrCnayz+/aC48+h/wwLCdE20G1GB0U6xLN00Al2dDHrZTzK7QinUGaZtJ?= =?us-ascii?Q?teUqXi6CbKFYnx55TIptLq/4YcmW2w1wAqXU8KE/MjRYxjJkGLbfJenvmhmU?= =?us-ascii?Q?D3HWkJSWOEsgS7x/8+EYLI6SIqOQlZMf+gM0Ucgo9ViqIjliUQAX/cDUjEJ2?= =?us-ascii?Q?PvCwnLyn+CRspQVn70utdVJJmgj1mYrPTzlfelpXfn0+1rAXeGUa2myJq2n5?= =?us-ascii?Q?d9I4fkM8LYBw5DD78slMxxeX8oFcT2ELdjCu9iw/fN7KXsMJA+b04606aqF0?= =?us-ascii?Q?jd+GG9CDew=3D=3D?= X-OriginatorOrg: zenithal.me X-MS-Exchange-CrossTenant-Network-Message-Id: 9a05b8a1-be21-409c-173a-08da4c9eb03b X-MS-Exchange-CrossTenant-AuthSource: TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2022 18:09:27.4208 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 436d481c-43b1-4418-8d7f-84c1e4887cf0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: m3Qx3YwdMcwi6Po3APiwENdYnjzur4ZA4QMfoPHbcyPe3qqeawp1DT8+7aS6N+fN X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYBP286MB0320 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:7010::70b; envelope-from=i@zenithal.me; helo=JPN01-TYC-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @zenithal.me) X-ZM-MESSAGEID: 1655057500494100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" CCID could send zero-length packet (ZLP) if we invoke two data_in, two packets would be concated and we could not distinguish them. The CANOKEY_EMU_EP_CTAPHID is exported from canokey-qemu.h Reported-by: MkfsSion Signed-off-by: Hongren (Zenithal) Zheng --- hw/usb/canokey.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/hw/usb/canokey.c b/hw/usb/canokey.c index 4a08b1cbd7..86548923eb 100644 --- a/hw/usb/canokey.c +++ b/hw/usb/canokey.c @@ -109,11 +109,10 @@ int canokey_emu_transmit( * Note: this is a quirk for CanoKey CTAPHID * because it calls multiple emu_transmit in one device_loop * but w/o data_in it would stuck in device_loop - * This has no side effect for CCID as it is strictly - * OUT then IN transfer - * However it has side effect for Control transfer + * This has side effect for CCID since CCID can send ZLP + * This also has side effect for Control transfer */ - if (ep_in !=3D 0) { + if (ep_in =3D=3D CANOKEY_EMU_EP_CTAPHID) { canokey_emu_data_in(ep_in); } return 0; --=20 2.35.1 From nobody Sat Feb 7 04:13:11 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=zenithal.me); dmarc=pass(p=none dis=none) header.from=zenithal.me ARC-Seal: i=2; a=rsa-sha256; t=1655057542; cv=pass; d=zohomail.com; s=zohoarc; b=JWVIhGkUL8cvE5wtAC28oX7UIEXS0gqLcwnoOYyW8IVyxTXHnjNrGcGwaIgo/pp+x/fwH0lTVLQGEMcbaqD56j7V94Vanyc8qxTFiyocx6AuDtC7BruIG8HEFnXHHhyIaMw+BjjmP98hlCJb24g0Gaouw4hxAGtSGDjtt/3jQ8Y= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1655057542; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=d+iPwC0aW548Wc7j5hxwPlqPvbb6SJ3BNRlSjSzm5Dc=; b=n7FWHFyi/2A3/CubY+4vRhPIXX8kApsC4IBxdQ96eG8TE6urWaULnaiA8FoFa4YvEZdJJIKAGxKrirt/k0Y2hRtRYjFpo84nAsp+/f6jEbzWGiYfGkoBjX2T67DLNlHdbIZbUzhIMZnJPeBv1btmKLh+QpF6nRJAnAnsGiVllTE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=zenithal.me); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1655057542806685.386865068805; Sun, 12 Jun 2022 11:12:22 -0700 (PDT) Received: from localhost ([::1]:45644 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o0S4T-0005ZM-Og for importer@patchew.org; Sun, 12 Jun 2022 14:12:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45484) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o0S38-000495-2v for qemu-devel@nongnu.org; Sun, 12 Jun 2022 14:10:58 -0400 Received: from mail-tycjpn01on20728.outbound.protection.outlook.com ([2a01:111:f403:7010::728]:13543 helo=JPN01-TYC-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o0S35-0005a6-EM for qemu-devel@nongnu.org; Sun, 12 Jun 2022 14:10:56 -0400 Received: from TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:c0::6) by TYBP286MB0320.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:801c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.13; Sun, 12 Jun 2022 18:10:21 +0000 Received: from TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM ([fe80::a162:2f17:bb41:c95]) by TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM ([fe80::a162:2f17:bb41:c95%9]) with mapi id 15.20.5332.020; Sun, 12 Jun 2022 18:10:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kLQmGADs1LB/sJre6MTZzMh5vdOc82B1hCa9CWww8ZuHQU3vpR685zb75SJJs4gGurQhILmT9oWMlVPQZsgxx7EaPVC5Ig/QNdxUZ2eVK0UJ8slWCfrMqUetDTbmJIvjPxUMqnY6qHgqQg8NzhHO5B6ylIBtXv66KtVU/9YT5UHERGaeyyhUkpk/6pk7zGbOEJU3uSVLI8kT0Qnrve8uy1JEGP6TMg4VO/lZFQrYbfN8h03sdS0XNuBycJZXhfObUuucttgvLnejpvLGOwbnNQ5mi9tw16CuydjuyziH6KoIGmzKNizQrxJsmdiC2+io+IPfiaJJu00h8ThEvdDX8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=d+iPwC0aW548Wc7j5hxwPlqPvbb6SJ3BNRlSjSzm5Dc=; b=SUXGiTOqn17no2+Q0sRq+Yz9SL9xqkoazjBflNtEKTiWtH38LRvd3U7hZ3WqRDDGg9AMc1q9RzZHcYGmq/l/EsFKzSayt13UkSn4JssKMy47vGMlMo9VN1h7lr8F55vGhgeeON/8f6LQKt9EDiMSfNAOH0HFtNnqe06IFTsibu0eP8ST38eDYnlgKzh+EQbt/8vNmcvsvopIgj0fXurLUQSamYhux68AGAczgBvP2iHxbwTjvCaEvaQ6Xp6E7IojDks7qXlK1qqKRyV3Qe/Ds4HW5hz3zfU9sp9K7CEixlZEUz4Qow/13T0msGUArvU7naoCh4eg+KA/2ix0UNkkBw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=zenithal.me; dmarc=pass action=none header.from=zenithal.me; dkim=pass header.d=zenithal.me; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zenithal.me; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d+iPwC0aW548Wc7j5hxwPlqPvbb6SJ3BNRlSjSzm5Dc=; b=CwBjjMAUMv5qcgbIhrS+En/mr1d/Q3I/+qOOAJiH2jzJWy5UNz7V7iMOXQn8UkAg9s4kVHMI4egNsPNOshtM2yJQ/J6b7CDPxhnEjKj5La2ROpC5t9rlkj+dTu8u4EFuy8avgnXbEjC3zV3Mv56e6CDRpw4VMC66L0dRCEP7mAY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=zenithal.me; Date: Mon, 13 Jun 2022 02:10:13 +0800 From: "Hongren (Zenithal) Zheng" To: Gerd Hoffmann Cc: qemu-devel@nongnu.org, contact@canokeys.org, MkfsSion Subject: [PATCH 2/3] hw/usb/canokey: fix compatibility of qemu-xhci Message-ID: References: Content-Disposition: inline In-Reply-To: X-Operating-System: Linux Sun 5.15.26 X-Mailer: Mutt 2.2.1 (2022-02-19) X-ClientProxiedBy: BYAPR08CA0042.namprd08.prod.outlook.com (2603:10b6:a03:117::19) To TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:c0::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 53c49090-da22-40bb-e0c2-08da4c9ed048 X-MS-TrafficTypeDiagnostic: TYBP286MB0320:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4y19kVQ0WGHNEmOYqNsTrikBiX4nDhGYixHgUk+BIgCUmlxNzWTXSmWBhM2FcEY92gcK4r8rWyubPm8hZlDhUvg+yjtL1er5MO+XPL1WR15jnZRGysmKmZvA/50nvReJGIS2zlIq+cH0AZkQqc15jL7nxkdclDerdzUus9Zl0lMkBZwXvzgKXZBEWNJFqy3ShofVHCV08d8O691ndug1oEogviS1DPXxcLUiwIVbgpBigSqTNMYfEyE25hT8bPpj2rUgyDomsdTaD+g/gwHTNayzOTv9O5Ew+RVQUSv6vB2w6bTwXJhyC5Ewu0ehHK1scfCAGgLYy59+Z8ysv6/vDlejz6ZvfLvNlZpG/YY9H8IBZS2AjkyW8JvKnmcY464Y8XfOGO93tTZ09qvOo8BpBxyI8HKmh7uxOu7doepX9orX0tZxbzBC36gMO7dWIrsQAMmGkBo+Yvylv2fSaSamecIS/VqjWf3/VtdKOYPviMgc75eSWdr7ojpohDJrswS61s+u/xMuUeovKSHfCb9kyqzatLC6VxOv+fh1ghDvN0yL83Zz182Fa/Tb8EWT3OBCWGh4j3Jcshy0m3P2Sc6+JrYt3RJh/Asj9dnyVRWr7gZHg1t4k9hWm9KV7BsPwzn0pTnIOZrsncP9qCfV8XTzMBt3ZrMbsNGhS0yzmzPqEcagSTG/Hu77qHnNdjksDeAI X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230016)(7916004)(396003)(136003)(39830400003)(366004)(346002)(33716001)(316002)(786003)(186003)(41300700001)(6916009)(8936002)(508600001)(5660300002)(6486002)(4326008)(8676002)(66946007)(66556008)(66476007)(6666004)(2906002)(41320700001)(38100700002)(52116002)(6512007)(9686003)(6506007)(86362001)(49092004); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/ee1ZN22pzqdvfdtfH/Sbiu+dFZidbWb3+yxbsxeZKwrsxs67+LK/1UNfo30?= =?us-ascii?Q?keqrs6NelClwFJMnIIySWkgUIR9ywCkiyyhL2HqYpvQvrOdpP7o1lhvpBCj4?= =?us-ascii?Q?bEf5wR2IHaiua+CTt4RofDellJcjkV2Gx7z7g2vQV1baVnx0OTVO4pXF5z49?= =?us-ascii?Q?oJZPPOBP/+1oSIPuhFnzF3o4x1A4vdeVNZlZt0hDEqIY5BbpZzz4WOHlf/Jg?= =?us-ascii?Q?e3ol7gPOv1sA/XnO4EPbFV6oLw7KvjEtqWmh4tU+fArPgDM6b6oW53Oki1XO?= =?us-ascii?Q?u8og1kH+KRn6JIXjV7srGoMtPzKI6rOzyLme9taha0i41uh3RBc2foi9ykYc?= =?us-ascii?Q?KVA7CufAqQF0hcb7uPbJXKvmkHcVVNUfMebnDp2/meHwBZsGUQxglY2LVL9N?= =?us-ascii?Q?2+yS128hZaGzRw/iIREFzFgr+xtJowUvXcavJcIKzWnejhwvXsG75oZDChC3?= =?us-ascii?Q?JBMgN7XSDIWNX3E+viuJv959NBSDZ273s2wuNmfOUyRs86Q4VPTTftv4x1qc?= =?us-ascii?Q?W+mrzJ/aYThAaFXwbj09AB5uyQ0NJTsG0c5lR2GzakE5erClVR42mPKA/brx?= =?us-ascii?Q?N9a0lhgPSSDDdD308hAqa1QVn1SpoVPFXnk9tV//e3ONPkX6ekUleLMGar3/?= =?us-ascii?Q?Yy8cKzfeCbqRp3qmBg04ociSjEFNR7MoLt5pPTchlOgGZJu+n1SZrgCB0zqA?= =?us-ascii?Q?xlNGjoPrsLhWnAaFw/Hhy+pUPlvk2tAix4alPkbjbnEP9VqfTg8Y1QrcWB9g?= =?us-ascii?Q?CrkNOrdxj9KZP6Yoz0EwU9OKPdy1SUDhxYtrQIcaucvGrcygo2Rp8/PE/ToQ?= =?us-ascii?Q?ApJ7iHb7iDjeBKLWgGQGLHlPMmUwQkFxB5e3eaFy7PYwXc0lYdXcb/D/EO/x?= =?us-ascii?Q?anvfFXtFLhAu2ThJPvWKKfSCr1Z+UFx+Wvp535L3eWMk+Xwfe/1qnCDfyK2E?= =?us-ascii?Q?0oG/Bhic7yBJtr1pOEO2LfmwIspzDOEXTBM+jpA/mjYMEvzsP2zJaREOgwfX?= =?us-ascii?Q?gRBnwsxWaNXEe3f0XJj5KTMDev29AGRb9olxD/5s2WgSY154re+nqzJ7Wk17?= =?us-ascii?Q?KWzzF1UTgoYrHDciYakjQtEF3Wk3Olgb34ng79+T3/H+xxGKEHtTre7sH/tX?= =?us-ascii?Q?MTBUG26fYIEefMgJWaCxQmUfaf7YSLqQLHqeUXup8yjTWblfWxqF2aZvToXm?= =?us-ascii?Q?W3yb2+MwtDeI/WWWyvai1ifotyhFhBHN1ecDy5Mipg0YYho9p5B4JuZP8UEN?= =?us-ascii?Q?yzs0+lJ2Ko97GvEnw4T3QwsWi1uKCey6Fw2mC1RnVQFz9NYw6tm97TyM3kxz?= =?us-ascii?Q?5dRQU6PhHtXa3N9xF26f+IDYRcJkRBhmrAe9+s6rVkZ2uWNO8IU2KmLaRGXe?= =?us-ascii?Q?CyTHqm2HNEypfe+jc4njI23iY6fI0fKLZvD4jDqWN0F3bmtukOscPCctD/ty?= =?us-ascii?Q?m/ha004kO4NwCojsJNHn0JcZcFsAR3od3JY2aMfupEjsmiMjzO4XUXID+5+E?= =?us-ascii?Q?mGs4Wq0YhBDcm/1raKXS56ei2/I2Ecc5TH6nbL8BmBAR78auxcVqEMrGU/LH?= =?us-ascii?Q?zbCQZxI9pdu1wYC+dAhON4+mhZC0537gwXnYYbfBYc7k4TPwesvvDGISJPcO?= =?us-ascii?Q?JmP6sjdc/rgppKyTKNYUy/vu+eSx/5ZHDY628ZvF6gKj8TVYVSL9entGoT/L?= =?us-ascii?Q?3mCYVyBfyAd6MZuphVYJGJ2LUL75+L+O+q5lwHQ9uLcuVnPqhgyoR40lzrOb?= =?us-ascii?Q?jm8gGCbfTA=3D=3D?= X-OriginatorOrg: zenithal.me X-MS-Exchange-CrossTenant-Network-Message-Id: 53c49090-da22-40bb-e0c2-08da4c9ed048 X-MS-Exchange-CrossTenant-AuthSource: TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2022 18:10:21.0264 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 436d481c-43b1-4418-8d7f-84c1e4887cf0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /PIsFChLX2ZAtpbKkR78dGvDkfidaRaUSUPltISpmCByrw86E6AHDHwNi61EpNah X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYBP286MB0320 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:7010::728; envelope-from=i@zenithal.me; helo=JPN01-TYC-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @zenithal.me) X-ZM-MESSAGEID: 1655057544483100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" XHCI wont poll interrupt IN endpoint if NAKed, and needs wakeup Suggested-by: Gerd Hoffmann Signed-off-by: Hongren (Zenithal) Zheng --- hw/usb/canokey.c | 28 ++++++++++++++++++++++++++++ hw/usb/canokey.h | 1 + 2 files changed, 29 insertions(+) diff --git a/hw/usb/canokey.c b/hw/usb/canokey.c index 86548923eb..e5fa4a5ad2 100644 --- a/hw/usb/canokey.c +++ b/hw/usb/canokey.c @@ -103,6 +103,13 @@ int canokey_emu_transmit( pbuf, size); key->ep_in_size[ep_in] +=3D size; key->ep_in_state[ep_in] =3D CANOKEY_EP_IN_READY; + /* + * wake up controller if we NAKed IN token before + * Note: this is a quirk for CanoKey CTAPHID + */ + if (ep_in =3D=3D CANOKEY_EMU_EP_CTAPHID && + key->ep_in_pointer[ep_in] !=3D NULL) + usb_wakeup(key->ep_in_pointer[ep_in], 0); /* * ready for more data in device loop * @@ -135,6 +142,7 @@ static void canokey_handle_reset(USBDevice *dev) key->ep_in_state[i] =3D CANOKEY_EP_IN_WAIT; key->ep_in_pos[i] =3D 0; key->ep_in_size[i] =3D 0; + key->ep_in_pointer[i] =3D NULL; } canokey_emu_reset(); } @@ -163,6 +171,8 @@ static void canokey_handle_control(USBDevice *dev, USBP= acket *p, switch (key->ep_in_state[0]) { case CANOKEY_EP_IN_WAIT: p->status =3D USB_RET_NAK; + /* store pointer here for later emu_transmit wakeup */ + key->ep_in_pointer[0] =3D p->ep; break; case CANOKEY_EP_IN_STALL: p->status =3D USB_RET_STALL; @@ -208,6 +218,22 @@ static void canokey_handle_data(USBDevice *dev, USBPac= ket *p) key->ep_out_size[ep_out] =3D out_len; canokey_emu_data_out(ep_out, NULL); } + /* + * Note: this is a quirk for CanoKey CTAPHID + * + * There is one code path that uses this device loop + * INTR IN -> useful data_in and useless device_loop -> NAKed + * INTR OUT -> useful device loop -> transmit -> wakeup + * (this one thanks to both data_in and data_out being called) + * the next INTR IN -> actual data to guest + * + * if there is no such device loop, there would be no further + * INTR IN, no device loop, no transmit hence no usb_wakeup + * then qemu would hang + */ + if (ep_in =3D=3D CANOKEY_EMU_EP_CTAPHID) { + canokey_emu_device_loop(); /* may call transmit multiple times= */ + } break; case USB_TOKEN_IN: if (key->ep_in_pos[ep_in] =3D=3D 0) { /* first time IN */ @@ -218,6 +244,8 @@ static void canokey_handle_data(USBDevice *dev, USBPack= et *p) case CANOKEY_EP_IN_WAIT: /* NAK for early INTR IN */ p->status =3D USB_RET_NAK; + /* store pointer here for later emu_transmit wakeup */ + key->ep_in_pointer[ep_in] =3D p->ep; break; case CANOKEY_EP_IN_STALL: p->status =3D USB_RET_STALL; diff --git a/hw/usb/canokey.h b/hw/usb/canokey.h index 24cf304203..7261f81e80 100644 --- a/hw/usb/canokey.h +++ b/hw/usb/canokey.h @@ -55,6 +55,7 @@ typedef struct CanoKeyState { */ uint32_t ep_in_pos[CANOKEY_EP_NUM]; CanoKeyEPState ep_in_state[CANOKEY_EP_NUM]; + USBEndpoint *ep_in_pointer[CANOKEY_EP_NUM]; =20 /* OUT pointer to canokey recv buffer */ uint8_t *ep_out[CANOKEY_EP_NUM]; --=20 2.35.1 From nobody Sat Feb 7 04:13:11 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=zenithal.me); dmarc=pass(p=none dis=none) header.from=zenithal.me ARC-Seal: i=2; a=rsa-sha256; t=1655057598; cv=pass; d=zohomail.com; s=zohoarc; b=J2Q1HzfBzfhXyeUulTwv+lUMdNrlJyYP9Ls8ga4mfenF+SSQzLHgKNxST9D4jR9gn5fHyw/UwXbBCw5xGOkBG7LSi5+qhhXEwTwrWN5zKygyJzoJCjMStGEPWChAh194Vm0sQVxuTcN+FwG7xBFcKOTQ0VdYc5KHdhHjfTW1We8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1655057598; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=28fPQPq5fYzVswU/w4rX/n8olAyXvdyvQZ01xyy0j+U=; b=nyrkoq/CL7TRqa+E2fA6ajYeY8bt+jsG95t/CyA3sZsuEMnJdmj4BmyDZD7hJJsXrXpKqETCSHNJZuP0we790le0JW2qc7HOFq/IkNMRuTVur+oWJleLlMeb5h1CXxWaCboVvJxxC8cdYy4XuZWg/Y9cqEzr/qzbcAENfCtNMtY= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=zenithal.me); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16550575980551019.5760572310548; Sun, 12 Jun 2022 11:13:18 -0700 (PDT) Received: from localhost ([::1]:47664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o0S5N-0006tH-06 for importer@patchew.org; Sun, 12 Jun 2022 14:13:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45502) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o0S3k-0004iF-8L for qemu-devel@nongnu.org; Sun, 12 Jun 2022 14:11:36 -0400 Received: from mail-tycjpn01on20715.outbound.protection.outlook.com ([2a01:111:f403:7010::715]:41615 helo=JPN01-TYC-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o0S3i-0005bz-OU for qemu-devel@nongnu.org; Sun, 12 Jun 2022 14:11:35 -0400 Received: from TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:c0::6) by TYBP286MB0320.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:801c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.13; Sun, 12 Jun 2022 18:10:59 +0000 Received: from TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM ([fe80::a162:2f17:bb41:c95]) by TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM ([fe80::a162:2f17:bb41:c95%9]) with mapi id 15.20.5332.020; Sun, 12 Jun 2022 18:10:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ao32axUBCO/klzHhW4JhWoZQG7+bSNRn7+ZoytSlmdDXMxbpaaMB4WsNaw8yzEttPINzIyQHGFBXMrN35XkzvRONtbkQ/vdrAdxL5F2Enq8V6bvVvwCwTWsWNmiluun8Vr40TvUY7CCDyaP1WrQbbziYDdWJmAGLDm0JDN8ab3jF4AapQfuRpMmv10dQq2xFQP4wonscsYj4iKO69PkSoazinuzboUsKaj/7j1D60fKlN/WCfr1/7wqzMwH/sBvKnLgaXw9pM3Oj8Ed/Jk1us+VrcBxkQeE4G0J8ey9cCeqzLZdLXFcNYTjaFTkKwIh3x8qFEnuofOxGB6ihNYF1+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=28fPQPq5fYzVswU/w4rX/n8olAyXvdyvQZ01xyy0j+U=; b=Rms8b+uYmppIQ5VVMJc/9llj/l66tPesAd0H9UQOYHDOJ7jB1k9xk6NclifX1EUbQBnC5OuK0UERD9OSAQiNmvyX5ZR7+v+mclyyuGpyKZD6+PKQ4/tPTsPBf9Ry/8Aw6jVVvFemXITloVYZFvQydWqu6kFSA9MBmm4qXL4Ezbc3gLtGjaxlOLmWwEVcHeEuUcKGRGhlRK/hAI06dbSRZkFexJGc5uhNmVwXpX/NZnSU5+mr/sn+hiMbtszPQuMxg4cv79rHBOhYmrXi+FGR6zHX5F/J7BFwCNrw7hHC2fKPjjXhLpBIZPInHK8XH4TkrAvHRqUXZE8YJk3Ac2fTyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=zenithal.me; dmarc=pass action=none header.from=zenithal.me; dkim=pass header.d=zenithal.me; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zenithal.me; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=28fPQPq5fYzVswU/w4rX/n8olAyXvdyvQZ01xyy0j+U=; b=FrtN0VCI5G2kwzVRwcWLXseJz++GhlmNCbc5A5h7Km+wBz4V+cuP2Aq0JF5IDys6BKk7cnH+ybeXs1T+3vwjU1nzNAJY6baipngyD7pUsZgLH/j+crGTiSSNTQfG0MveYRJVAHLgD1CL1ZlWs42I5aRTfi/MJdvaWsR9rfLWPeQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=zenithal.me; Date: Mon, 13 Jun 2022 02:10:52 +0800 From: "Hongren (Zenithal) Zheng" To: Gerd Hoffmann Cc: qemu-devel@nongnu.org, contact@canokeys.org, MkfsSion Subject: [PATCH 3/3] docs/system/devices/usb/canokey: remove limitations on qemu-xhci Message-ID: References: Content-Disposition: inline In-Reply-To: X-Operating-System: Linux Sun 5.15.26 X-Mailer: Mutt 2.2.1 (2022-02-19) X-ClientProxiedBy: BYAPR08CA0044.namprd08.prod.outlook.com (2603:10b6:a03:117::21) To TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:c0::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c1e26edc-38e0-4712-e007-08da4c9ee6dd X-MS-TrafficTypeDiagnostic: TYBP286MB0320:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: J0G5cU0QfeCw/FlRJUqremMPmhG49jpyU6gFtXrRQmP18DxWQxz1aI4EhiE3q5sHYkEfObMj2aYgnu2Ol319ACMFnkmUd0B27ve/RfDJzAwDRIfqx830PSR5yvC1vRppoijSS42KJg8KxwlexnJzfJgk8NbTG7YYWNk1jkMzonzwzi716wBVKu8dVkBLu6kIvm5e4PjA/SRa1FpnCdNp1dTc85IDBbuZsdzy5ohPIx0TccyLVUNRQFuj0SL9R7c9H5nFLcLC3NUWfAaRoAIjWjzJlEOsHmCCXNPmQF8e4ktjKMf5fKdUTZU08P0pbITjtrn/LAd7CUPzCN1TgKVzA7Z4BVB/hDNMhHSf67g3HR76FkWwfc9Sy6KJwYMqkCmEfj34ocze+Sr4GRRTbDW9Fn5NDVRPZA6u45/oO69R1dfUTjyzXrccPOykNmE6JTOb9cQVfydE4yFL77ePVAX/Rt6EWoZYztzRiz3H/8mG+bX9c3BFPznkRy8SlQb3UCu5MN1eZyUG4HG4Jkkzkk+rZm5B/jGivCESWwNDOcHhIW756sZLeXwk2eJGFyZj42RYyfNkKH8G1n3Q+166c8q2TDfiCSgmanSnCfSmDMOKAvjLCDaD9MCQLbGPgNdO0N+tS3jopS8Aksh4s6fQaPDVIpJ1981ZCvxw9ckI13btxZaPGf0WSNYOSmGzx8AehkS+ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230016)(7916004)(396003)(136003)(39830400003)(366004)(346002)(33716001)(316002)(786003)(186003)(83380400001)(41300700001)(6916009)(8936002)(508600001)(5660300002)(4744005)(6486002)(4326008)(8676002)(66946007)(66556008)(66476007)(6666004)(2906002)(41320700001)(38100700002)(52116002)(6512007)(9686003)(6506007)(86362001)(49092004); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Cp3XNwyXxl4L2YTkGy2BDfa0yyuCLhULnlB6LojMLjx4AHDEMzqquVLjsrWD?= =?us-ascii?Q?w5Clk9aHKCDnpA+eKu/k7/CUDKkxe1UY3TW+CIhz4AAbZYfgKT3P0BHfKLeA?= =?us-ascii?Q?ZpWKWeW6lExAN6B9V4FHBujAV3RgmKU2tuMbT8uEkR5BTq345aMULc1fHWgZ?= =?us-ascii?Q?JsCbUmovqHLp3W8kNZJBxo+WfxB9EHBhPAd75OwBOBdeo6b7YuzxP5icm/K6?= =?us-ascii?Q?8W0Al2kVeYrcmmwo1LGXofg2zRMq0bW8I6j6M6bqQ8ImjJky8VvroeX3gVZd?= =?us-ascii?Q?18j4PBb9ksFjgG8dk6Ip/MpChA7WPd6UyzDs6GO6lsJ9S7ooSN86cLwKnML2?= =?us-ascii?Q?suocH0dq3C+qWLENSemKmvl6BTQq3qjXRSpd2FVgFJdX8PxBPGHLEJqVhsOM?= =?us-ascii?Q?ILPOIPhzz8IEPlisvoZOS099Ss9AGKvPwekvPZDftCZkB+nuE2szu4WNls+i?= =?us-ascii?Q?qSIale66DDflZUkdWov7q6YUJN19yQHTnv1sxDC/OEl34H+CSiFsiJRsSL5y?= =?us-ascii?Q?BGsABre3bQmCk6M/fB6lQQnKgvVcCx+PZwv7VcnBre4k3/iY7x6uE61U4/6T?= =?us-ascii?Q?7IEl3Qaa9zJptACF/PXolJSMpBXoDwNwfmBQjLNtl9kSC7icoy3p+OvJ3XMa?= =?us-ascii?Q?P/HAZjrRfyTQQEnblEqowqG2vnoIoRzUAtVqhOhxlswYTATk1Y2uHvprD2E7?= =?us-ascii?Q?a126x/0CXbgQDIIM6iDlFRHVOhRLekuMTrPLCuEmEp3p5bZWLZ7jvKShW75Q?= =?us-ascii?Q?LP5cwh9VhOy2rJ+IwKIg2j5lcmlWazPkQ9BHKcKxxGLdRQFEbUVq8Vt/2209?= =?us-ascii?Q?14PP0yRKSExlmLnJHk7SGZPF5Y1xkmnW4engSrtnPKKj5a6LrJFnudRRNjcd?= =?us-ascii?Q?QT9v17QbS9hp4JEPOyNEM1sSI/wne69HnBSzxGU7DaXNJJAeq9t4054EJdmp?= =?us-ascii?Q?YQJSTPMArdHv4xnVMi/TmEYlO9EQGckv90n0pm38SI0RwdS/nvFNvVdp6vNL?= =?us-ascii?Q?QH6VDFkmFZZUIV00hUQHgIhSpVgduM1N8YEBJm5pry2rl38FrmhzuXkICYnX?= =?us-ascii?Q?vfPSN3iTh4Ro16VMPGKyuf/sZWnhP5s3Y/kmR87ccblQHh7u1gtKijZ2CW7q?= =?us-ascii?Q?uxjOdX2xj700fGvi5iAUqJmh/n07tobn0DiTBDHrS455nwu9ogjfItEjkwnp?= =?us-ascii?Q?c5BnNekTnIlNf9QFDqTPsK/Vt1Qrvgx8g2DGPhobPj/TlefWnNmLJ9nYZ2GM?= =?us-ascii?Q?/BFdjY0bfVR5L8327uTNOATRfi2odNGWZ5K+s+bI9RAiVGroKp2HHXR5hnoF?= =?us-ascii?Q?Zz+9b+Vx38R8KCTdhCm6W5Z4baqHLgCO50Z9xKeGjdHJruHdgcWcjbRJ84yj?= =?us-ascii?Q?bzpZMJhGpxUAJ2Dk35WWnq2S/NBdq1Jty8l2T+sCKVDSsWzcGMxN0/cVC0i3?= =?us-ascii?Q?FqHuoYvNrEHTJQzikL11NV2BKL1z/flxijGvChVZOLlZ38JidQ1YLMIc3IdW?= =?us-ascii?Q?d+6bALeTGHLuc032sepx7ImNdbOIcVboTy6gTBEKDsFCLr1cAEbbKSAlFLLY?= =?us-ascii?Q?bk4tFIi3RXE+185wo4AF1Dioo1PEwZT9cj1+LGzls9AU4v/ZdSIG0UCNqY7H?= =?us-ascii?Q?KYNwIeutdHhk+8tQs4lFnQT2vT+IkKb4DKwoxcFmLxK/c7KjKW8coQlV0aKh?= =?us-ascii?Q?BbO3e8uAA8OUImRzYjBzYfbc7skCE3D5groXvuOQ0QcuIrwkMhCsfPGhhIEO?= =?us-ascii?Q?AW3tFI7ZiQ=3D=3D?= X-OriginatorOrg: zenithal.me X-MS-Exchange-CrossTenant-Network-Message-Id: c1e26edc-38e0-4712-e007-08da4c9ee6dd X-MS-Exchange-CrossTenant-AuthSource: TYCP286MB1393.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2022 18:10:58.8816 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 436d481c-43b1-4418-8d7f-84c1e4887cf0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1GDLbznZgEz3ngDDdZWrMcNoCKDsRB0EjblLYxPQw06LX/lICJQ4Lw6SBtTbqvN8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYBP286MB0320 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:7010::715; envelope-from=i@zenithal.me; helo=JPN01-TYC-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @zenithal.me) X-ZM-MESSAGEID: 1655057598697100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Signed-off-by: Hongren (Zenithal) Zheng --- docs/system/devices/canokey.rst | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/docs/system/devices/canokey.rst b/docs/system/devices/canokey.= rst index 169f99b8eb..c2c58ae3e7 100644 --- a/docs/system/devices/canokey.rst +++ b/docs/system/devices/canokey.rst @@ -146,16 +146,6 @@ multiple CanoKey QEMU running, namely you can not Also, there is no lock on canokey-file, thus two CanoKey QEMU instance can not read one canokey-file at the same time. =20 -Another limitation is that this device is not compatible with ``qemu-xhci`= `, -in that this device would hang when there are FIDO2 packets (traffic on -interrupt endpoints). If you do not use FIDO2 then it works as intended, -but for full functionality you should use old uhci/ehci bus and attach can= okey -to it, for example - -.. parsed-literal:: - - |qemu_system| -device piix3-usb-uhci,id=3Duhci -device canokey,bus=3Duh= ci.0 - References =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 --=20 2.35.1