From nobody Mon Sep 28 00:33: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=aspeedtech.com); dmarc=pass(p=quarantine dis=none) header.from=aspeedtech.com ARC-Seal: i=2; a=rsa-sha256; t=1786934273; cv=pass; d=zohomail.com; s=zohoarc; b=UmWjjqZYhxosjm8BLLiqjX0tSFeXAJyM1qyIHdHfIlnOzvaiIs9VrW9MbRTLGhUrRLzH8bJ6+Wl71IM8hOHYwDg1mTVlK7m5d+Wzt5JjZdA0u8lYevgzRMRHzCP0btqS8Rxy1OND/KWruNACI8qOjjgMYOlbmNPCZomobxMCBpg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786934273; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wPYI4S5njShbtGg2NpaZ518A98BZhrc93EnOFbNcP2A=; b=ZXxAm7Yd7mjMcvrTl8iXjODi3ju4r457dIfcVDqyTo5Bx9vpWEaFpqegF7V/OBO9j5MgzHf3HmQe3coBwWHd6O4uosUyPb5Y+L0p3212DmRSw3Eijr2p6OWUxRz+4hU7q19p+XH1uitpMI+/cYf6n5epku4N9UPASkg083Ub1dU= 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=aspeedtech.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786934272786513.7717225194955; Sun, 16 Aug 2026 19:37:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wvnE2-0002Hc-9l; Sun, 16 Aug 2026 22:37:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wvnDx-0002HH-H9 for qemu-devel@nongnu.org; Sun, 16 Aug 2026 22:37:18 -0400 Received: from mail-japaneastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c405::7] helo=TYDPR03CU002.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 1wvnDv-0007CH-Ls for qemu-devel@nongnu.org; Sun, 16 Aug 2026 22:37:17 -0400 Received: from TYZPR06MB4980.apcprd06.prod.outlook.com (2603:1096:400:1cc::10) by KL1PR06MB6591.apcprd06.prod.outlook.com (2603:1096:820:f8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.17; Mon, 17 Aug 2026 02:36:39 +0000 Received: from TYZPR06MB4980.apcprd06.prod.outlook.com ([fe80::ea8a:7cb7:4822:2fb3]) by TYZPR06MB4980.apcprd06.prod.outlook.com ([fe80::ea8a:7cb7:4822:2fb3%6]) with mapi id 15.21.0315.016; Mon, 17 Aug 2026 02:36:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mE8+PPXLu3rgQ8gS0On2sLlb+L+tNSw9cDkXswmf5pU4eo5WEtHpswuXh5rpFuwzpICG5hR1dUEnTqM7kNgnWKW1AjCMRQ9uaPfjVf71WO3lCQlXv1hfSOu+wO3DhtMmhjyLlQqAAF5b0h0eB70zri4AnXzRh1vHLUn0k4rc8Pfs3dyumN7kxshKP0A2PBvZ/x3sz2sTg/pngAO+ncwpCCclfXDqMyhKwvfvmmNa0wb7GzZ8a6djPgGQacC3QypmraYMPmgp3tVFGMmk1P7oxbbKZfy35v8tDL2esr78GFC9GQ7dwGX9vTCsSt9Z8uHicqnRLrExD+gRS2AHUgovaQ== 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=wPYI4S5njShbtGg2NpaZ518A98BZhrc93EnOFbNcP2A=; b=pGclvH3gvbbu+22oz5ZsQAmQL/I5XOcywtEap2wl5tdb0FLvptCI5I2AQwukNhDPZpyzC5Nps3lNBURqRNSrcHohKgc8U7IyuiMuzAC8pY4emzGRrvBDAmvqWYJBF0WjFA+IplI9eMe63kGBkOMJGQ0hGb21OLjrb3vVk+9VaUAt9hpZBBTc5ecbX+WVQdQTTDQmr/qgMsMBab8gDorbzhlVTo4ZPK5Kvg0/+cyi5PcTp4JpH9RrVWgH7SmUxaLDH2IeG+RRYth5FgLMDK9m81eztP9CZ7C03wrIfHbnRzhwx66dmCGNJP/Kl4PVrz/UGwLMfHusfBixhMzfglRYSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wPYI4S5njShbtGg2NpaZ518A98BZhrc93EnOFbNcP2A=; b=q2OGX23hWbEuMd5DIlDMa3X/PRfYXoAf94XoDhk+CIokClQ0wz3P6oLW9srC3Ph0iw1+yZtKAXfswBUcyAowE6o/G9Hb/sEUqIXHYnNqcG8nmdYfGzQGJvd87oAx6t9jnbT8vvZiXgTUXjek7k4Di3YCedBR/GzGqooegEO/w3QCFQVMeeMJ7u19205gIOGqcLczXdKgQIEJv3kKiwSaacksi6OR/5hOCjMxQZnUHWqrhqeZtEPGK0UTU0Hs0jVJwUnQv44k/wVIbgx3aLIkXB/ZviTIQAxMm8YztSkXyDPdALx+yYpEwk1+PKRONOuR7PNRkMtsHXFVhvIFINYwBw== From: Jamin Lin To: "clg@redhat.com" , "pbonzini@redhat.com" , "peter.maydell@linaro.org" , "philmd@mailo.com" , "open list:All patches CC here" CC: Jamin Lin , Troy Lee , =?iso-8859-1?Q?Philippe_Mathieu-Daud=E9?= Subject: [PATCH v2 1/2] hw/usb/hcd-ehci: Handle get_dwords() failures in async writeback Thread-Topic: [PATCH v2 1/2] hw/usb/hcd-ehci: Handle get_dwords() failures in async writeback Thread-Index: AQHdLfE6+YKK2JdlsU6cDAo6pp5SnQ== Date: Mon, 17 Aug 2026 02:36:39 +0000 Message-ID: <20260817023637.3082135-2-jamin_lin@aspeedtech.com> References: <20260817023637.3082135-1-jamin_lin@aspeedtech.com> In-Reply-To: <20260817023637.3082135-1-jamin_lin@aspeedtech.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR06MB4980:EE_|KL1PR06MB6591:EE_ x-ms-office365-filtering-correlation-id: fb726543-2d98-404a-7cf8-08defc085d7e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|23010399003|38070700021|18002099003|22082099003|56012099006|10067099003; x-microsoft-antispam-message-info: yJaF7l6nPrYXYMVP3Og0EnpJ/HL3mmuvwRoJ6N4kiSe5fUNnB0SAfNGu87eVCKCUZtZtKVza3PyRezJd7o7ldtBYQbyJLh6a4W6k2ypVYuFTWZLcfD+yQQTwdI6qgl+Uc8gPyNlLzzlI/TiDiBI4GItDr9wAY/uqHYVF50DIqnPvsBK53UuB0GQgcsQ8p275GpHqszzr6gsJx458PExsa/RKOVBNp75o3lY2KVtd+FUhUyTgBZp0E9/6OnbTtyMqe49loa0AByJeyZftLaOZut37uQmIOl06kxphU+qclOUsiaS/gTaEzql+0eZBnCG0Gtvubfyr+OM2Ml5q7rllOLiYpngG3uWc2wSNo6/UrHMjIX6fuRhCiM/H6EcuXgEfApZQOrBKpp4WzEV5tS5A3RS5rnMCgGsRwPFAIMATa2kirteGQ02TYZaC9ZJa2qq7wxFKXIFJG83HXN8DQc6uPetofLD8Icl2YSDFzvc6KxuWqzEcZqJwJeDRETX+521WyVv3Ttaw4GIuyXLp4AE3mf/Zs984E7pck/lHS2i82KqgCog0Yv++iAEYuM1H3fZoEtg7ggermW7yzwHa+j3pKNAtUT5HFv9QnNmBzSzqZrRlJfERMN0HcfqWrEZ5+C5q5RZUco2TSx1f7XvaYJghGDdDGIIbPE+JfDMLbk9gawPpRx18jse2O8tpdiQvSeDnErk6WxhpgzfXhY/hrBaSvP0cobD70n0J1MCpOOnrS/0= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYZPR06MB4980.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(23010399003)(38070700021)(18002099003)(22082099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?RzC5FUFWzG3UUumisV6vFUCi+e/jp8emCuV3PhiwVct8LLTXrUHIpxh34a?= =?iso-8859-1?Q?ISO1DdRXkca2yiT6G/PA/UOXl+d9DJ55KLb/3ibNPOi5N/skJqp6CS/LZW?= =?iso-8859-1?Q?RfrpoBXa23pHGbulifWNoo84XPdjLV5vXsZD9PtYD/BiX0CqMxHj9ZNLqH?= =?iso-8859-1?Q?wv8yqiw4jFtXALFc3CratNPxfdeCJgZGpamFcFa+A44tnNQT+LGH4iCwa7?= =?iso-8859-1?Q?/iEINa3Vudxf3d/9Ud9WSBAXJkzTfVur5oqyDMFZbgrHDQpFQr/vY/knN2?= =?iso-8859-1?Q?qhy97OLxTJKKGTonVAnZZPfLvYGEQDRRyhDoqPWu4IsV5OQNqG+bSt98+L?= =?iso-8859-1?Q?wBw7euTilPvU7MQmhtwxUj2KYGsOwagpt5+9kTnBvtW69jXkhqUI5TAL8D?= =?iso-8859-1?Q?b/LeABSoK0+Ij+COm4098I2TRudNxNnKoftpMqkVWZAFUbgi+qF9VeOezR?= =?iso-8859-1?Q?4c9pzIXcQHhIe6pONmI7GDejUy9OmENUuqfqqMXqNWxhtT1v3A7Z858vV3?= =?iso-8859-1?Q?oIzmwJ0heBas8ubybjjNEyVbH0kLgoH0LGNMpDCMV/vj6l0gj/nNJUc5Zs?= =?iso-8859-1?Q?ZiZZuGuLbnxPzfuTPRZriiyx8nx7ZNwZdewm36bjMWqHoVRsJYXGgrkSzU?= =?iso-8859-1?Q?TZ4D9WPfQLJfewOjurqzv1AWqjnP+a9gehR6ljeHq3PxIdU0orKoyyEfm0?= =?iso-8859-1?Q?Oq+Sa0561Qxv8FgwwvbghKaTVCnoW/CpJU5kj6OC+EVrmgDC3kZtpHGiIy?= =?iso-8859-1?Q?Bz11WuhTiFzcO7C0hwSLFd1yjjen5XjycVQVb423EWVDhaMT3WLv0zqcYA?= =?iso-8859-1?Q?IIAr+UrgtR533cnJJGj50N/dcxVDPA2tZq6EWrd+Vrdoxp13J0NxF8gJik?= =?iso-8859-1?Q?uz5Qb+DaA0wmxZKKPeTEACVGuqdq9dy+ZFIGIXUbQ8zwEXvptAAHvHLq2r?= =?iso-8859-1?Q?vNqjHAgcXWjydubpPNJRCgMuSbsKFaVNCKEgrvM1Qe71fJAWpDwHzzRsQM?= =?iso-8859-1?Q?Gmw1kCXLOOR9Bk9A3aOZ5zWCUdtjqZZETG5TleW+WTrk9vRVRSLYK+75tR?= =?iso-8859-1?Q?5A+ZYFxrrkBUEqhp4dj9FmHyoOaXDSzSTtfwjEsxVQHHksQVjgyIGO2gbd?= =?iso-8859-1?Q?GH05VQ0qeZyPQv7K+ZBLr3NXFKWHY6+xl4Luhrl/ToDRYSvh2yGw8wmIe1?= =?iso-8859-1?Q?lY6VV2rEgZCg2Tc+xNpz4tdN1kK3p6pRMcq5gZpnllFXF01cwUvRMQ19kI?= =?iso-8859-1?Q?nf0TIFGkYWJ55lx/a2KzBTBzQsdYhAmWwC7/8vhclWoMmWXoMTzLOdF7DK?= =?iso-8859-1?Q?qkj4mr/gCDGo0Ga+JOfb82hir2+Wz9/vEQ9br9BYHX+ZLVmOOe5N1O78Cw?= =?iso-8859-1?Q?9gHW6/4q4Hh21VZQv64j22IVASc/vjgP/6b7pEYTNDVtC7Xr81EebJjv1A?= =?iso-8859-1?Q?3ed8JeTl3HAlxYb6tdtAfeTR4tUyUUH4TWnzKMslj0uoAawDGoz7T1cGDp?= =?iso-8859-1?Q?/DD1BVR1YMMS1Px8lrKUNEacAWv62JNXmPNcVfX9MbwHus+/sdAa3D5jKg?= =?iso-8859-1?Q?mHaUtTG48BKpZ0E8Izu18IuFZ77k9ISO1R2c4QdN078XBjs0N9Nr4ZnPzY?= =?iso-8859-1?Q?815ZiVa98O2nMzd2UVSCa2s09c4/nap13lDDWdv8zPBbXzS1ElC0EGTjjE?= =?iso-8859-1?Q?RNGjfm7l8+O20F8nXW/peDqK2qdAJLOtb4QRAeqfA1OrAFmORH5VonCJka?= =?iso-8859-1?Q?Fd6HVKJEw7D2VRdMwnjRd1bKYpUP6/BxtxBAn+q+VVCFt3qCG7EDTKskHd?= =?iso-8859-1?Q?oBbUoUXOBw=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR06MB4980.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fb726543-2d98-404a-7cf8-08defc085d7e X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Aug 2026 02:36:39.1077 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43d4aa98-e35b-4575-8939-080e90d5a249 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ld6NA3VgzecFq2UVWAjUMfzDjbM4RXtQF5OXLXff3tnei+Mbtjg0VfMsJkg2V1V8ZobBxtQoE9cg704aPlWjBG4IJmMW06lK8tO1jwbaXXY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR06MB6591 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c405::7; envelope-from=jamin_lin@aspeedtech.com; helo=TYDPR03CU002.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @aspeedtech.com) X-ZM-MESSAGEID: 1786934274641158500 Content-Type: text/plain; charset="utf-8" Coverity reports that ehci_writeback_async_complete_packet() ignores the return value of get_dwords() when reading the QH and qTD. Handle read failures in the same way as QH and qTD verification failures by freeing the packet and returning early. Signed-off-by: Jamin Lin Resolves: Coverity CID 1685236 Fixes: 2b3de6ada5d ("ehci: writeback_async_complete_packet: verify qh and q= td") Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/usb/hcd-ehci.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index 451a918e9f..d43951975a 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -533,11 +533,11 @@ static void ehci_writeback_async_complete_packet(EHCI= Packet *p) /* Verify the qh + qtd, like we do when going through fetchqh & fetchq= td */ memset(&qh, 0, sizeof(qh)); memset(&qtd, 0, sizeof(qtd)); - get_dwords(q->ehci, NLPTR_GET(q->qhaddr), - (uint32_t *) &qh, ehci_qh_dwords(q->ehci)); - get_dwords(q->ehci, NLPTR_GET(q->qtdaddr), - (uint32_t *) &qtd, ehci_qtd_dwords(q->ehci)); - if (!ehci_verify_qh(q, &qh) || !ehci_verify_qtd(p, &qtd)) { + if (get_dwords(q->ehci, NLPTR_GET(q->qhaddr), + (uint32_t *) &qh, ehci_qh_dwords(q->ehci)) < 0 || + get_dwords(q->ehci, NLPTR_GET(q->qtdaddr), + (uint32_t *) &qtd, ehci_qtd_dwords(q->ehci)) < 0 || + !ehci_verify_qh(q, &qh) || !ehci_verify_qtd(p, &qtd)) { p->async =3D EHCI_ASYNC_INITIALIZED; ehci_free_packet(p); return; --=20 2.53.0 From nobody Mon Sep 28 00:33: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=aspeedtech.com); dmarc=pass(p=quarantine dis=none) header.from=aspeedtech.com ARC-Seal: i=2; a=rsa-sha256; t=1786934272; cv=pass; d=zohomail.com; s=zohoarc; b=OIruuWWZ8FabeeNiterDGh9YGSRvXdXJuuwBEmZWQMUqePw8xr0b7xdOAm0n1pB1Ef0lNQf0eWlWreQohOOYvAxfXoXU+TIsC4vf4ZzJZxJlP9KAGfTegB3NHW+uqIRo9xr3uMCYRPlUGRvTfDpMKCziw+h9agz7x8gz3mKAnjc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786934272; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Xq50S7TqGbJ34EErK+8FBrQB5VYVgqdtcWYLm2/3iVs=; b=DRkcvmdrs5RrZGQXAPJr5neBaaNRsYyVDJ+3q1R5yceV9ipvN6VN54RLKmQ5mtNeCF7f/QM5drpzsMQsuK0D7odex2u+yW2wBVTDJIN0aueVit8JTcB3r5IOA3t9TSKiFbAV//CGHcmT0XEPSKiFFW1jO2J9WIrAECsilzY5RmA= 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=aspeedtech.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1786934272432202.7687482430697; Sun, 16 Aug 2026 19:37:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wvnE7-0002IT-9B; Sun, 16 Aug 2026 22:37:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wvnDz-0002Hd-Q6 for qemu-devel@nongnu.org; Sun, 16 Aug 2026 22:37:20 -0400 Received: from mail-japaneastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c405::7] helo=TYDPR03CU002.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 1wvnDy-0007CH-6d for qemu-devel@nongnu.org; Sun, 16 Aug 2026 22:37:19 -0400 Received: from TYZPR06MB4980.apcprd06.prod.outlook.com (2603:1096:400:1cc::10) by KL1PR06MB6591.apcprd06.prod.outlook.com (2603:1096:820:f8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.17; Mon, 17 Aug 2026 02:36:40 +0000 Received: from TYZPR06MB4980.apcprd06.prod.outlook.com ([fe80::ea8a:7cb7:4822:2fb3]) by TYZPR06MB4980.apcprd06.prod.outlook.com ([fe80::ea8a:7cb7:4822:2fb3%6]) with mapi id 15.21.0315.016; Mon, 17 Aug 2026 02:36:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MTkWrjQpCRh8AE3cQzkGX7FCFJAiRNZcZTJmNqShLO9DyzZhykRGUU2B3rltutRKlP5tfAp9gmwfEKciwpKuEBPeLGnfZIGhdhWukqqMjRGZ4AGcTAZXNUb4EjOi0YuJ0YbAImbD2EKsh2XG6mdHLB0iNAEPGjo4Un5vmGR/LXwORwTPHOyUTs+YJe712ZZrbgRHh1cR1mN/zr220uZUNYVsCEPu+IRU8iZQLkdOq9Qmg2KD+kHlRSKgO0sCovTpYoLNDmbdaYn9qc0XbvWY6xev62UHdQVqEfW7x5LrROsq4TMyGilYJ+fExqwaI+jzVuv1cD/S5PKAbOz+WJ7wow== 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=Xq50S7TqGbJ34EErK+8FBrQB5VYVgqdtcWYLm2/3iVs=; b=sA/Gd96wuwQF6kKI9h+lVRxUj6OwDaNcQWAaIy8PTlEGEJj+gOsoYSeHIXv2eAj06kUQVdk6BjcMB4fEkbIhoEHTiwW1J4kbkZVa+z6dAn4ULQtwB3/Ihi0OBamGg9GlkkRge/BBl/KpDTVdkFqhoqrPHLEyP3XRduY9By1gbWU0Lu4V3JFR9qNArcq1NmNh3edhAubgb0g1eJhNTUan93eAetBftPKRJE1G8xCBgtJdJcLB7nL/qTGTI+1jU5rJx+mlsl9qvsjlQQ9O9TVjKN7m0dJLufunMHOYiStFgz6pZuHFtRzn8F+0phdgNbyQJaxSV1rX2w0thUoFqJPAEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xq50S7TqGbJ34EErK+8FBrQB5VYVgqdtcWYLm2/3iVs=; b=i/728x3gb0Y6GOlTPje8D4cbUvvAm3/z66uBDY3ysx6vbWlkzSidKYEnSoJlMci+vGAMwH682lQlLlOvk98wEnK+woLlErJSuH3X+oYuqRI7jIoJzzX81POXgYPuQ2XTBD0lA32hbIugB5qTpXy8eBdfOInmjPhsTWgc0whWzTH2DbEOiIDYn0kO46zsL1h0/xMynFqIxMfjXx8uCxeDYtczKjsI7Q8Wss/xhMK1t4ygeFsS4KH3WqxRVdijom42ynzNg4MmWxQw9XxJN84R33OxCZ7q9/A5G/fKzxsCIMQiVYUmpWfPK7pS6JP6VcBSybPyNb99j8uFybeZIj6nyw== From: Jamin Lin To: "clg@redhat.com" , "pbonzini@redhat.com" , "peter.maydell@linaro.org" , "philmd@mailo.com" , "open list:All patches CC here" CC: Jamin Lin , Troy Lee Subject: [PATCH v2 2/2] hw/usb/hcd-ehci: Check for DMA errors in get_dwords()/put_dwords() Thread-Topic: [PATCH v2 2/2] hw/usb/hcd-ehci: Check for DMA errors in get_dwords()/put_dwords() Thread-Index: AQHdLfE7QS49U63b40eQy3mrFdSRpQ== Date: Mon, 17 Aug 2026 02:36:40 +0000 Message-ID: <20260817023637.3082135-3-jamin_lin@aspeedtech.com> References: <20260817023637.3082135-1-jamin_lin@aspeedtech.com> In-Reply-To: <20260817023637.3082135-1-jamin_lin@aspeedtech.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR06MB4980:EE_|KL1PR06MB6591:EE_ x-ms-office365-filtering-correlation-id: 2c320382-d0e7-4d30-f170-08defc085e2b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|23010399003|38070700021|18002099003|22082099003|56012099006|10067099003; x-microsoft-antispam-message-info: FnA+3Z1sAwMmdqI+ThluNp4KtGBVeAK8j8syJWay5OQbfZSFTso3KMVkOg8sK6qe7ukM6LgRBTdbKzt+NepGTtRIJ73oZ4W6GjRmCyPKJ8U818rN1PU7K3G/Gd8yr9x92t9yBjGEgwLzDEFFLEf1KCErD2/Bt1ODFCd7etKQTpEE3h5vVc49u9otm01X6uUyKWuCnsxZrxWbF1QkJ95DRuOEIgo/Wje3LGg23/XU5VeEYlZHBGI45HCJoYGgN5O8Nnlb8Yp8HqAfk0RgkrtUCNCOtT3o3BxxmqDMkenROId84HFbJAoDhQ2wdB6k8VGqPj7bK+qG7o4t2OtRNrNDE5DLvHrtdaGTT4IJNFxAzcKBhD+fD5Hj/vbBPTDdZ4OXlGbwsh8w235E052oIb2m7y70SVfbRCX0iHJD+Hqiv9HBRXutinXAxa39xlgIdmS2DinkoFmrjurGJ3Twu9w5QlEyxa4XhOycbUxu6OQxTxLN/QXb82tB7JXZ+wwnHWr+u1iZfUFjFPT90Bk4+EH1q+9W610ySMStzf3pBBeLJABKTHVwNBx6D9wUL4FbtAHMfJdJnRI6hkSY42F9eIspyZfKaW/DxYbUr4vZR4+gQ1JV8h1m8oJWDuFOXv3TCUuTnxdpI/+/dj/Z9LyzhwgWvtfvJmSOf3yAy5WW4rSsUMeg8qE/6NxaDsmJqaKBu4Tp+m6aO+kCPsv5YJdRkkss5eIhpXME89uGmP/rs8K6LoQ= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYZPR06MB4980.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(23010399003)(38070700021)(18002099003)(22082099003)(56012099006)(10067099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?P7OAUszpRNshbNIVQIprL3jAqnYaxk5glGTpdjekiBaa0WIQB2X3oEsVYpik?= =?us-ascii?Q?6jR9A9saaV0891l35tO9Ol6IJ7+KP9u9+vv9uTvoDbap1pj/RAvABZa5oYPz?= =?us-ascii?Q?MoGBpNWpVcr35Dm7JAtBQLTHvsmpfFhhJ6pZSSw5MGcxrM+cfONB52m9BYR9?= =?us-ascii?Q?jbqygdvjyOL8TLYfgd5GJKqWz5+8mvwPzH+H18Iehik1iFd1fbmQ/8Qq8nge?= =?us-ascii?Q?eWLVsYYheMoNo6izbGuIuJn5zbNOR0DtEGSOkEBNNTh4cfMbd2v1Mczb+16D?= =?us-ascii?Q?P5KGwlRH3MIvSrafLnvfHl7fllT60R941WPyogs6YD1ZCfTLKg7y3zWjy3vd?= =?us-ascii?Q?9W6bPI/lWiqWpQrVXc0gQ48m0e4YV7HeNXNwYEjquQim/MyxB7wrxI++8Z2I?= =?us-ascii?Q?nAgnSuB5HVO/noqOF+hNhgYNfzuaNFlubEd3eeHPv4B0I1SIqutyK7FlkFIQ?= =?us-ascii?Q?Ppm4DD6der+qDAGfGLM3oRtm44FrCfzFsXquBgoHOti3jUJALaq6IigBpk3N?= =?us-ascii?Q?O5s/0r7rAevSOgsjRO1aDSgZ+rDroVFHqPnaZBe9e0AyzKgcBFibnd3hn+8l?= =?us-ascii?Q?qIvjjxZSBHV3I1XnHdAum1vo57Wg/Kopk/h/Nnj+LKprNzchk6209xhk0C5F?= =?us-ascii?Q?y/F4AfbLmbXFAbDXpeI2T4IU25jWyVGor33yc0JW9bfg7ZoOJFDfAkI75H1D?= =?us-ascii?Q?Lux/uWfWB90lH34FclipO20c7s5BYrQCQfXODSEUrvgPyzD21KoqYlBdFk9N?= =?us-ascii?Q?+rtP3WPM3PIyvABL6ligXCJ/k8xWlWUoEHQ0C4M2IZUx4CMJahlD2hrWu4oY?= =?us-ascii?Q?ocyEtReRCKlmxquw15xtdKTiPT9zIuNzjHkQrEzaDwN5PY0QV/u7uSFb6/Vd?= =?us-ascii?Q?I5KNZz9L7JE+wmkqIRnEy/JvLosaJK+kKy8my4LYaGTdwbqMHPGyq39mjpPd?= =?us-ascii?Q?qBvdHph8eEvvXKSeWArLU+vz5x/sjTuFiJdP2EH2571p00crROQxxgB/TdKL?= =?us-ascii?Q?rmK05m5+H+F21Tfyetbk2uJr95gzigBE+MCdt7pHVsdDaQb7aT+zzthREnel?= =?us-ascii?Q?G4uAoV1WXC31DaaZdlMBZtS/cH3NZFslzUIiLhhDbyZDnRXA9UU507ocrchE?= =?us-ascii?Q?1PoqSZvlL+Bk9UziacOiv2VIzTqV+gdBrjiEgeUqVfgMRrPgzCiTDAWDIeoZ?= =?us-ascii?Q?/9wDehCpa4tDzkro789oWazxqHyGau/3oa5KzZxSuwe/DwX/TguitVGNHlsR?= =?us-ascii?Q?9qym/SSUOk9o6jhPzTRoUtw8aNEFygC3QSSoTLgF4uRRvu4DVJ6X7/Z0BtXv?= =?us-ascii?Q?quua15qoszwndNxu6QLbxxEMD4sFClZQGMOvxawBusTGenBMYJgc8pJPko2C?= =?us-ascii?Q?Sx2o9eSPwRQEGu5D3JWMWBgCj5cMZ5EjdID1/YVuwg8FyfNf8gPB76CvJG1p?= =?us-ascii?Q?3SOpA78O60KyBR0LanJcGhKhHyV7uqlKAz/zhS69pObpOpwSyEEaJamAknGN?= =?us-ascii?Q?62rzfnQNUrvI9Trw2RLgfRkTkUt81917YydznK0G7QPheIBDQxN/A/LZPM3y?= =?us-ascii?Q?nB0mKc8doQ+lPs+lbgQrJ1bsnWd1h2kYKcIaRs8lQnyrJrk57NpSTK7rFPzK?= =?us-ascii?Q?ZgAiTu9W1TZcJgbFq/gxIvaBjg8fx1JwLytyCcUfbq2/ZuFm1SILzTsVyeg+?= =?us-ascii?Q?yb/bHC5IReOd+jR76pHqtsDoqpK5pGrmAinytZIlJx7V7nVtHeur8kPZcM3q?= =?us-ascii?Q?JDieORYXRA=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR06MB4980.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c320382-d0e7-4d30-f170-08defc085e2b X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Aug 2026 02:36:40.2758 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43d4aa98-e35b-4575-8939-080e90d5a249 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jlKK0tPn2/spFe6m7VhwRqf4kdjXZOwrZtc094Js9Gh/vQOtxkfWvYdHKmPkiU1ScjBZl3Se+/wkZXrMOlDCrBX3jOpGBIo/6t/HiJZZumw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR06MB6591 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c405::7; envelope-from=jamin_lin@aspeedtech.com; helo=TYDPR03CU002.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @aspeedtech.com) X-ZM-MESSAGEID: 1786934274654158500 Content-Type: text/plain; charset="utf-8" get_dwords() and put_dwords() return -1 when ehci->as is NULL, but that can no longer happen. The sysbus variants set it in instance_init (ehci_sysbus_init()), the PCI variant sets it in realize (usb_ehci_pci_realize()), and usb_ehci_pci_write_config() only switches between the bus master address space and address_space_memory. Meanwhile the results of dma_memory_read() and dma_memory_write() are ignored, so a failed guest memory access is silently treated as success. Drop the dead NULL test and check the MemTxResult of each access instead, so that the existing -1 error path reports real DMA errors: raise USBSTS_HSE, clear USBCMD_RUNSTOP and stop processing the descriptor, as the NULL path used to do. All 11 get_dwords() callers already check the return value. put_dwords() now returns void: none of its four callers (ehci_flush_qh(), ehci_state_fetchitd() and twice in ehci_state_writeback()) looks at the status. Signed-off-by: Jamin Lin Reviewed-by: Philippe Mathieu-Daud=C3=A9 Suggested-by: Peter Maydell --- hw/usb/hcd-ehci.c | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index d43951975a..daab5783bc 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -421,16 +421,14 @@ static inline int get_dwords(EHCIState *ehci, uint64_= t addr, { int i; =20 - if (!ehci->as) { - ehci_raise_irq(ehci, USBSTS_HSE); - ehci->usbcmd &=3D ~USBCMD_RUNSTOP; - trace_usb_ehci_dma_error(); - return -1; - } - for (i =3D 0; i < num; i++, buf++, addr +=3D sizeof(*buf)) { - dma_memory_read(ehci->as, addr, buf, sizeof(*buf), - MEMTXATTRS_UNSPECIFIED); + if (dma_memory_read(ehci->as, addr, buf, sizeof(*buf), + MEMTXATTRS_UNSPECIFIED) !=3D MEMTX_OK) { + ehci_raise_irq(ehci, USBSTS_HSE); + ehci->usbcmd &=3D ~USBCMD_RUNSTOP; + trace_usb_ehci_dma_error(); + return -1; + } *buf =3D le32_to_cpu(*buf); } =20 @@ -438,25 +436,21 @@ static inline int get_dwords(EHCIState *ehci, uint64_= t addr, } =20 /* Put an array of dwords in to main memory */ -static inline int put_dwords(EHCIState *ehci, uint64_t addr, - uint32_t *buf, int num) +static inline void put_dwords(EHCIState *ehci, uint64_t addr, + uint32_t *buf, int num) { int i; =20 - if (!ehci->as) { - ehci_raise_irq(ehci, USBSTS_HSE); - ehci->usbcmd &=3D ~USBCMD_RUNSTOP; - trace_usb_ehci_dma_error(); - return -1; - } - for (i =3D 0; i < num; i++, buf++, addr +=3D sizeof(*buf)) { uint32_t tmp =3D cpu_to_le32(*buf); - dma_memory_write(ehci->as, addr, &tmp, sizeof(tmp), - MEMTXATTRS_UNSPECIFIED); + if (dma_memory_write(ehci->as, addr, &tmp, sizeof(tmp), + MEMTXATTRS_UNSPECIFIED) !=3D MEMTX_OK) { + ehci_raise_irq(ehci, USBSTS_HSE); + ehci->usbcmd &=3D ~USBCMD_RUNSTOP; + trace_usb_ehci_dma_error(); + return; + } } - - return num; } =20 static int ehci_get_pid(EHCIqtd *qtd) --=20 2.53.0