From nobody Mon Sep 28 00:33:13 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=1786946060; cv=pass; d=zohomail.com; s=zohoarc; b=Yg6xX1Ucoi3pITXkODIe3mCyY7aQZrAOmpHF9xkuLLrM0X6+imuYJ9paf5/JiZWQN0uYI4HINZnfkCSy8+H+Cqt0jbUdLXrYwA4W6rcDpLOpoK3Q9swrdQfcYBYbhLbXeO0zE20SAEykmRiLiaFIPRqyjwqaE5hgIKvjNaJPYxo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786946060; 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=7DLeXM+G1qY1bWjLPPwjWyDiZl8GD+QWTkJQU2inY3I=; b=Kbu8ZaZJoKXiqWc7GXzRa0sx/YChmdhUVaPwPj4OogFEraK4Jj+MC5SGJ73dzA/bGyOGdjOGtpmv3IHYuVkVzevoq1n99chsgXJVOr6Kvb1fHod0xVJOwNWi4+ZeX/dwblD/u+PhEwl6zqtKjQw2umCpIvHkkQt5PP2L0qUKx3I= 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 1786946060603745.4827608916299; Sun, 16 Aug 2026 22:54:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wvqHu-0004Wn-3s; Mon, 17 Aug 2026 01:53:34 -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 1wvqHs-0004W6-1g for qemu-devel@nongnu.org; Mon, 17 Aug 2026 01:53:32 -0400 Received: from mail-japanwestazlp170120003.outbound.protection.outlook.com ([2a01:111:f403:c406::3] helo=OS8PR02CU002.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 1wvqHq-0004hN-Gq for qemu-devel@nongnu.org; Mon, 17 Aug 2026 01:53:31 -0400 Received: from TYZPR06MB4980.apcprd06.prod.outlook.com (2603:1096:400:1cc::10) by TYNPR06MB8880.apcprd06.prod.outlook.com (2603:1096:405:3c3::13) 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 05:53:21 +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 05:53:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ATNQKT/yciJmPra+NdppadUgsG+wa9lEjgnmGnOrDt6+5gyQoczc05xgqThcobFQFdeeDJpYkx2SRF/agXZPkSGsrif9KI3XTdE/tGOGMypH0wMkYLasjq1qm73rgvM+Ddz9neoj2ha1jrYaAkzlV5O/1/mQXLjWmoByMMyYPFDl8+nmN+Hq3OWhZXzLMWNYtjS3eNPDo4UoC5a9QUkceFkgCUzWpgxnKbsk2cYJpQtNBzGPqwdewEnX5EEqISHj/M0c351ftJtW+DDos6GV4CxBibDklU+CotStlrZ5u9gVQE+lfDEIxhup02jViL1eFLWcaIQPi3o+YH8pfSu1Vg== 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=7DLeXM+G1qY1bWjLPPwjWyDiZl8GD+QWTkJQU2inY3I=; b=E/fjAsrUhRqtdYsBMrlHhotiYvfz98nq0M51DXVudtSfZmoHg/rcRZoM2OWLx3LbNWcuPxmvBp7axSWmPPKojf4fHQixkNEY+eGAzl2Etq9n4Yiqy6vg42TMW6NDhMvdPOgKFi4TJsbRzfib0cwO0owCcZe/ygd4Yo0GzUbjbBnvsixe+lvmVyPkMzsRh9Utqb42kwUuNbYKOOtmGtq0kbJ3rIQIJkN8tNhByI+zCVImp3Ecbt9BHXMFYMUoRAxdj89BQMuyspJ57/cgvxGK46KBw65RYZKofQF+tGyDxvoG2H8kPn9cTN3gAs2DgGlyew5m6UotJSXcbFitmihXUA== 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=7DLeXM+G1qY1bWjLPPwjWyDiZl8GD+QWTkJQU2inY3I=; b=GVymVjlAGIaHgNxQFxgMo4EKQHfx/TXlQ5v3ppZRM8jsMAiLxcshTSNYm43ed7XZEXENVxvxI4nqd0tR+q7dozQ5ZmQBqCm3L2PxJ3NXz2WN2HeEaIG+YOAKnwe6PbuwN/SetRij/LUbAJQo4JAaDaQ45UX1607LuWhCo7Ex6fjkB6H+gPxISYrw5zwF/fBIl2lF2KfkdZve4vP+3KL3D8G97jkrd5J+WLx9w66sommygOfuKbhJN5JnwZkGX5zUS6o3sg2MApk/Bssg854AyKlKMypvXM/st33cVcCJ4uTCYlsbg073oxf1AYB8LOY/+HdJKlKlhldFdh0OJ8QYAw== From: Jamin Lin To: "pbonzini@redhat.com" , "peter.maydell@linaro.org" , "philmd@oss.qualcomm.com" , "clg@kaod.org" , "clg@redhat.com" , =?iso-8859-1?Q?Philippe_Mathieu-Daud=E9?= , "open list:All patches CC here" CC: Jamin Lin , Troy Lee Subject: [PATCH v3 1/3] hw/usb/hcd-ehci: Check for DMA errors in get_dwords()/put_dwords() Thread-Topic: [PATCH v3 1/3] hw/usb/hcd-ehci: Check for DMA errors in get_dwords()/put_dwords() Thread-Index: AQHdLgy1biN793ldtkyOFv8LJrNurA== Date: Mon, 17 Aug 2026 05:53:20 +0000 Message-ID: <20260817055318.3826428-2-jamin_lin@aspeedtech.com> References: <20260817055318.3826428-1-jamin_lin@aspeedtech.com> In-Reply-To: <20260817055318.3826428-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_|TYNPR06MB8880:EE_ x-ms-office365-filtering-correlation-id: 892f3624-6419-4fb7-4403-08defc23d7e7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|23010399003|22082099003|18002099003|56012099006|38070700021|10067099003; x-microsoft-antispam-message-info: IC7m76xhnWXPrZae7KPjBghJwGD6WPGuX4yJiU/4admWpNfkC4ecYZl0bqlI5LTeHd2TWP7lo3iosWZVcmcSI/OgntY4PZwXsPtnq5siPNH0yMt1hDEuKtNnE++EhAa5Fr1Kaq7XSp9+WUJ3kKM+A1Czw4efn9owUgF3dzUplZvB1tqk7qZI7sWwZcXkAgm3u4XJSY/IxCWb2cxYEThvi30O47rziLyrs3wK53N/NxI6ZP2ivbvkW4eOL+Kbs7XYdjhnsIbZx+VTHtcybXSTPJXmnHm0XrEH89Dzz61H1uXizc2K1FzazvW/4rM26ui9Qe3ZfZOShYD0o5jkM61808C7Aw3arTOSn/sthoF5yS6Hz3v2OzNXQhRhv3DdIt5QAfmyWCxWFYPlhmG9DUajjnvzWqtlajCeGKyIVipa364bH/4EJMDrhLeTSM632BuImnpNTr2O1u9JX+WUX/w/EQRpIkm+Jd44gfh/FBOMNLb6EynT9Nxoio0uOzQK4CWrDR/UxkUfizvuxGr/Z6JNxhcj09Km1Cl+N+ouGokO5jWMXq07CKrpCQtxsGXiFEED32cVQf5BSP++XHCtXnl95b3NovWj+bsk30+uaV8gIHaH66dzsJqepd15Hztf4TeO6HB+/HOBfod0UHshjUDs4fy5mZJOIGWKGezZWQPKbfbJQbw31LdRh9XweJqKOKMPKtNQ3/u2ufH+G8UvS7UJT+8P4W61euwBSF/dPGVrdMM= 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)(1800799024)(366016)(376014)(23010399003)(22082099003)(18002099003)(56012099006)(38070700021)(10067099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?kkfV2LK7mzxgewveGyE+WPADznDLT5W1RcDi9PtMKe0LBJUYKN6erf7qnn?= =?iso-8859-1?Q?ld0FMIL7s35iZ8TUZd/SBOhNmRpwR+DukkU6E8BMPLtBGJs7SEBpfZSR+k?= =?iso-8859-1?Q?7tyv/+gBUm4JxeQbF8DcYUUeQ8HO2entCcb1vAjGxWhYrKSdqCaOObuSWq?= =?iso-8859-1?Q?6svDofhVcgcMvRu1OVY4eRJGgNcp7Ymf+jZojCdXSTXigxE0R9VN2rAmzj?= =?iso-8859-1?Q?vD0RJ0Gfgh/GgiDUfMX7gcE3ha4Hq530B4+nNVOn/VnM7Z72M77jGDbWqd?= =?iso-8859-1?Q?DyZe9PMnK4NXugaPf6NS+ir2/04onm9qyj2r56k/CgMItjP0cOpu7mKe9+?= =?iso-8859-1?Q?i7idSDzOf9afGw2vlCvbtwDYQPHC8CWwPQZ7WeSBPTXsNltOGpS6WIrH/8?= =?iso-8859-1?Q?2Sgg/7Lg0QBr25blfguNXl52c9aGFEzpxxOaY1l/YH9+BkJCRHi9Z9tP4B?= =?iso-8859-1?Q?zHLqdJBOxXKfux/NOty4/nAeeS1JjZ9sH6UvpVlEJg9cCVkPsKBZFpakXf?= =?iso-8859-1?Q?g44j4wkcleN1MYkGBMJbREU7kWIdrericCt8pOPuWwQu2ziDVz1RJwQPSu?= =?iso-8859-1?Q?O+hKTPvx0ri76ZU2VZwyB/r53hcrkgsMdxicl5Xw5e0zkUjIFPBOXjIPfW?= =?iso-8859-1?Q?cN5dfPyG2ie06XNDUf3PO4En87cDuDHHT9u8pObjw4eUaG5i5uZ0ByKKN2?= =?iso-8859-1?Q?Lxhe/rCepaIFcdckKKSmXfNHE2GzMzSSKexjsZIOUJY6PAmjy+3yGT9K4p?= =?iso-8859-1?Q?Q5OdLOQt4lUwQooVa/9zVffx8zohKhdbMRzFukq/vzbIAdC4vYqVTtcinr?= =?iso-8859-1?Q?kTBlMI4t7oSTNQPcDB61xq6I2uPepDeScfwur+SC6DY0s2Iq/pVvpFtgZa?= =?iso-8859-1?Q?ljb1Clx1O+N83ryRtXPuSVrGOpyuobkqaaBy6rLbgO5r06k6OAJRvAisrF?= =?iso-8859-1?Q?u0MquwPkpnzYoBiAMmS19H6lt0uhZONamzMnhoukPtjxub8j4eT4PInGkU?= =?iso-8859-1?Q?6dj9iWmYWw9/GLJ2juFXt5s9ksw09WQiG8ZN1kbl+6a2YZNc0YTzHzFUNJ?= =?iso-8859-1?Q?1B14Eqd6OTImHvwBrfc47uD+L19/S0jaAfnvRgdztXzNxnwoIcRwFlzHaF?= =?iso-8859-1?Q?Ce0QlWCD0/i5iHrTUTYpgB6gzvFYcGOoGRFFWPGIYi4m53Nk9rzt+zYRQS?= =?iso-8859-1?Q?kKz/zdKjA1TZG1F51GhWyaFuyjxkGuIWLQv3O5GXqtUmSAT35wjtyFfenh?= =?iso-8859-1?Q?pv0A3l8Q9/q4Hptmc+Gk1Qo5EoRYFJ8o217fFKUgK+Kze6MQQ5gzNSkJa1?= =?iso-8859-1?Q?5/mh+OY6UCxXP/i6cKWbZ1jJ44KMcHBHV8DqyGaf/+hbFZI7buyDOLygjx?= =?iso-8859-1?Q?inz0zfvsNmdLX9Q3ig8a1UrFFnecvGrIHSAwjDZUcYhTh1RvAuJwBnY2KH?= =?iso-8859-1?Q?aAd78tHauVOuYJWLo2Q4649wmjBEnmcRW3zpL8cbEEZNql4CaHYitGj+F9?= =?iso-8859-1?Q?XxClyC7/J+j1wnXgQsE6Sf2bmBG1vqYTieFN7lbvFzx2W2RAHUqg7RFCZ+?= =?iso-8859-1?Q?9H+rk8DTKPYiUnGzi4ro5c52POEoHYOOmGS7aCpCXU1LMlmsJiv1XyH2LS?= =?iso-8859-1?Q?cOkU7OxxyJEQEjFwF7f84gAVUL8aknhFRRNTwwO3MaEZ9mTdz94IIgb2KE?= =?iso-8859-1?Q?k683il9w27EYDh/VD89bQY7XhetdfjjW02bjX4eQRBpHrQjvZ6qDs9/Adk?= =?iso-8859-1?Q?EFblRVUJ7zLeUxws+6FSEkRAWPTVt185nljXlca/ZbxMsjlRf8yqbtSR4s?= =?iso-8859-1?Q?VmMRMrk1wA=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: 892f3624-6419-4fb7-4403-08defc23d7e7 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Aug 2026 05:53:20.9088 (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: n2jgpTnBeseJPbDjP+3YkhrBeLmdQhj4c79l8u03BKXsQh8+7tRDrY/w3C8gEyJQNf7sR71FuP1XkJfIOCreGq3663NDKy/BiGFjUMCFzjw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYNPR06MB8880 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:c406::3; envelope-from=jamin_lin@aspeedtech.com; helo=OS8PR02CU002.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_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: 1786946063012158500 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. Suggested-by: Peter Maydell Signed-off-by: Jamin Lin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- 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 451a918e9f..ecf98c4e19 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 From nobody Mon Sep 28 00:33:13 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=1786946061; cv=pass; d=zohomail.com; s=zohoarc; b=Bc0AMtyA5IpFF5xC29zk2zysmMRIfJa8McgipQo9cQsxKOeHKwO5jCnXDdByPtZjZe1eme0g3Pabe4ZZ2IftxU0LTezONK06ROyPuwqGkic0mEHTDsrT0Ys5LcDNdm0g/wyhTGgTSd+Y/DKhYKWcqnTNN9EAa6DPcV48vZdidso= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786946061; 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=hqaOSv8APDmD76zyY37DuQv6k8/L00ykrKomk2zzV08=; b=DcaITNKad1TF9iW0E0h9oQZPPvq15y2Q9258exBGOhy7bvDXpmoGH6v+d70kfk/A043xMbcmKXBKbwznCsg7oSLAd5PAzJcXJtf9EMb6L+4Cs6bF6choHwianHtjiopDQY0q8W9bl+M5verG7IREHnyqyy37P2x+KtgKAqaW/VA= 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 1786946060795760.6525039687438; Sun, 16 Aug 2026 22:54:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wvqHw-0004X5-Ou; Mon, 17 Aug 2026 01:53:36 -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 1wvqHu-0004Wp-5m for qemu-devel@nongnu.org; Mon, 17 Aug 2026 01:53:34 -0400 Received: from mail-japanwestazlp170120003.outbound.protection.outlook.com ([2a01:111:f403:c406::3] helo=OS8PR02CU002.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 1wvqHs-0004hN-HJ for qemu-devel@nongnu.org; Mon, 17 Aug 2026 01:53:33 -0400 Received: from TYZPR06MB4980.apcprd06.prod.outlook.com (2603:1096:400:1cc::10) by TYNPR06MB8880.apcprd06.prod.outlook.com (2603:1096:405:3c3::13) 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 05:53:22 +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 05:53:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CuTXy8hby4AYV4QiqnY52MK6OxphVTn3wVXueL1Sm69JxI6aUMD4n1aULKGEhDtVK43Dh7GKoWkXjcMoP2Iw5L9coXEl516O3aAUYravm67Wr9djrIp78y+QNEo6Gz2HjqY1FqOwXooXKdqDZCryjxXJg0cc2xsE7gGlnIuy7cpfoHRRnRP5t6tBIY77dzFEu4O7d5MPukXJCqLEbjht27HQhzYM+nZ1GxFVr3i4OiF6kBTfuBEN4ZkZUeXM1Ychx/x4vBtdc1zqzplEERLI8zHR3IHjnHi+sBbg49KZR4xS/FcFDmC6tv1XJH2OV12h57quMTlH8EmXP4quKHlnRA== 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=hqaOSv8APDmD76zyY37DuQv6k8/L00ykrKomk2zzV08=; b=xLuX99fhSQc4jl+tebP5fC5wrKPgeDE8VukzeWmImVZ8jBAjWp2xKkW6piceJ1yseyKa2iXSqrc3sGxe2Y5+t4Hpolg88w0PXup4WqDAX4O7D4x03SaHCxsHyViQ5hdx2N9lIDUw6ogPUxbp7drtgu4nzO3zPUfOTDSNmwTkmInyP49ajNuSDkW9RqrjKohWNoCcH+m7ZmNRug+QMZFaQrdfSxhuQBM9Qjh8+zwjZdoqhca7diwWoVAMRMN6neG4RIgPh8QVPnj3MxW7L7xCEKj1Gu3TW8zJFTuK/xz3YuGgsLLVXVzBgphNVTgcTaRhUHZN9jBvm0WXE3WbAmJQZQ== 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=hqaOSv8APDmD76zyY37DuQv6k8/L00ykrKomk2zzV08=; b=OfJpldZGgC8wZZHqJ0euS6k4D+meZtMT6OqDJ/kqeIjCQeSplNBRV1DQr0+CsHCW4TSNBwqfm1K1ihWeHCWsm1ut4kCDaZQxGI3SseN3yPXhHIGNqpQJqrmhjpwiq5Uvf2VsMsqXCxt3+fYuptXx/7nnipAVPuwrmKbzp0SF6ng3DJi2pIbgB4MtnDqWFbV6DfWxpvr31vLeC3ToIr9LskVeMGISOkshDjrIpxRZhbBchhq2jWv36WIS7CoZKjpEfdNAjkF847p++Uqt2cJycW7n1Oqw1UoGbXDWXKLWTFSIrzEiZSOGOwy0PCiV+i7w/hN8yKDrfsJ5pmsTJtlv0g== From: Jamin Lin To: "pbonzini@redhat.com" , "peter.maydell@linaro.org" , "philmd@oss.qualcomm.com" , "clg@kaod.org" , "clg@redhat.com" , =?iso-8859-1?Q?Philippe_Mathieu-Daud=E9?= , "open list:All patches CC here" CC: Jamin Lin , Troy Lee Subject: [PATCH v3 2/3] hw/usb/hcd-ehci: Make get_dwords() return bool Thread-Topic: [PATCH v3 2/3] hw/usb/hcd-ehci: Make get_dwords() return bool Thread-Index: AQHdLgy2mE9HtWpWl0CbusN9qOdK6A== Date: Mon, 17 Aug 2026 05:53:22 +0000 Message-ID: <20260817055318.3826428-3-jamin_lin@aspeedtech.com> References: <20260817055318.3826428-1-jamin_lin@aspeedtech.com> In-Reply-To: <20260817055318.3826428-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_|TYNPR06MB8880:EE_ x-ms-office365-filtering-correlation-id: e8b242f8-5dbc-4e4b-b2c3-08defc23d8bb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|23010399003|22082099003|18002099003|56012099006|38070700021|10067099003; x-microsoft-antispam-message-info: 6Y5p+LAA4V1NRp/gNZ4T8wdubR0Y4fDfAHN+4qfQ1+a+6qEAPtU7hBNFJKiDwXoqTdUUvPlFSOifS2QyApqyF6ApcZTENFirXEhUnkrBUc03FQdfHdBdKfzevFVJcJeyTmf07tkCJMHfkiJ4fVJeLMIZ2hFI76AyiQwR+Xe0On11x2gxtQ5j405WOP/zETBa6d09wAGEiobOkbTgIB63RIDhK8GL78nl/rCd7IjwbPBdb3bpM/sJuuM9i1hVWe7Li9gexc826r/hoQ3iSy8fm+4YPDXujd2I8CPJ8HDEGacy9YXCZtFYJveo9AzTfcF1E4J+Cf9WS3RanmfiOGZIQZ5tocERc9wNUIMANX/FNUXi3l5cSmAhH/OpjwdNvlxJ96iM0zholvF3IpxLDhxbozWiGxdKO+lV+n/RzKGSIK5b7mfI8IkjE7p6oETHm6eV5OyXTSLMcDQj4xDDLHJH59wemhm6Lle43drXCE+E+z+ydBrsvvKiIiy7GVqxcvhbHXmEuxs3XpiPCdw6P59y/4zxQv34IwHY6yb25JVZp2L0ODy+pzzB7ORd9RP0TLZqMv9WdTlFpyrGikw5ZrvN1QwcRjjlCa0mTa/ar/laj9t6ncRFdcoT8GMQLgbG7a0itfMbxtASe310PdJVemZ4+oq2inc4Fwod5xEZc1nGzb3QM+vwiccTYdKsBDHVsn6O6IL05568oA6zw5VZpMA+p+PbRCbyLyZGt8Kxd/cx6EY= 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)(1800799024)(366016)(376014)(23010399003)(22082099003)(18002099003)(56012099006)(38070700021)(10067099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?VxX4BB7pgBVQB6Thg01+YiucgENm5DkK+dFsn/6lNQza+B2BOQxlXH+vUa?= =?iso-8859-1?Q?P8PZ2P2E7PTyboRBAanwoEDsy/n1BUTL35ENc62eqsQGQz48s/RTi1wKQU?= =?iso-8859-1?Q?G+WU70vxBodKdOryRfvCQdvj8eKkdYsgBNZUzTmzZ8th7B3zvpbxNbhx/u?= =?iso-8859-1?Q?Bp9yyOCc+fX1OIcw775uinfd+vjBblbPSzrSSSPk/Qt2dkGMbSgw3GFb7u?= =?iso-8859-1?Q?AvzZfQlcgABc0aJiKFRm+/327TlZhzWDwk+3MDuZAWUEmfl+7aGD0Xh3e/?= =?iso-8859-1?Q?J3HcdmQQ2lvWWQUhQIZpck/4qlEVt3X9lpInndF318pyOwEeQmZ2M1lhCW?= =?iso-8859-1?Q?lZZjVvMp2vuLJ69jhu70xKXYVnmrNQRHKLU/EvNs2Egt/s0wJSxrlQv45n?= =?iso-8859-1?Q?QKb+2jP0pXIHDF7MURXj9m2dUc2lGpyaygobJjoIY1PpdKP+B0VG8IZFu6?= =?iso-8859-1?Q?lWFz5TmGmtiaVxIhhB4pY8JMdV2olP8ZaTSBsxOXhheB0QVYsIe1Unqki/?= =?iso-8859-1?Q?WnG1NVRc5jiY5F58PU9HIbV42uxPn12izzskZN3eEmgoqYgUmjcO116yhJ?= =?iso-8859-1?Q?PEe9eC9jAx/hG/m0GbO1mRlUL1wzKwMFYzh6M6pRhhQdbpzO+57RACOnoE?= =?iso-8859-1?Q?KxVjJ0GbE/ZYXQNEcd3cPd3J8vBesRuYnRnVB15SuAYyj0qxJm6HLYIF2J?= =?iso-8859-1?Q?fZuQv/yemPVFEbssaw18tyya9H3idMpv0LZ/itk6KCo1Z/GcNNhIZ2TWzk?= =?iso-8859-1?Q?8xT5mi5mYoX8l3YHL5iI3DNSTR5MPKT5C8hcu/TwDk86u9nOIbS84YP1+L?= =?iso-8859-1?Q?3Y6xdA++xa4CBsQFz8INFv56mpxS+4nCwgMUxizk3AH9Vp1ewAQGoTF6Oh?= =?iso-8859-1?Q?XrdLpirn+fWMex0GH7c+NUSvo1OYyaSspuIDBNkNQT6k0ZhXVBI26CVjWL?= =?iso-8859-1?Q?VzzjTLXDNuH8t35TWMXL1IL0K/NQKb4nlm0fJAfLTw+ndexlQzRoXZ60Cv?= =?iso-8859-1?Q?10hXcwc5Wivilvt7OGgwEQXMz274lKmGAx6YSD6wEe2mEAS4G4VQ/czUi9?= =?iso-8859-1?Q?Acbe3lyn9NRiGwxiSZaSQ+vIb6oNYIgiHbqeiTHLGc/BsuFEJj+TBzzWx0?= =?iso-8859-1?Q?+sWGKNDoNdfjl919qn0PrwzstIeZGVgW2RJbWHuy1lUrf6Eamvr5gXWHDR?= =?iso-8859-1?Q?SMgm7fhbnH8zEwU9fBA6np3CnqnYiJpknKCcoCCBJUYD6prF20XmYB78hr?= =?iso-8859-1?Q?5N8pRirr/bOJFJGWWTDxbY6e5gwiVfYmvr83C3cIQBmYs0vVOtPtF1QMNe?= =?iso-8859-1?Q?MA4+zguvTCjFXXCV8nZr1J6sRRNnYnoaiZuZLqCiMYlG8hbQ5o4GzPemsa?= =?iso-8859-1?Q?YcgBrtcThwyh0owXpm0VOY2fkud054gtlcpHnGER3jy7eYi2VOsq5B5PAk?= =?iso-8859-1?Q?29wl6MlOmgGTo6uI2fimWyQNAPgQ+eEbsf/7mDOlf1s2bTTzPnF6NPzOe1?= =?iso-8859-1?Q?v3Wq3xWMcRx6ThkaaPkPlt9vj4wiaU5CIpmcPnQdKP5zNv5Jizq0cWN5Wx?= =?iso-8859-1?Q?OFJB2ZkJKs/NHkAM5ShfdNxaGr3wyaWZXw4kqbqkPMfU+QZuwx2FxwRQxd?= =?iso-8859-1?Q?KyEdVOFUhs05mvzx6/PPdaYdD6owIxNpMDO5s5RulCtESNjCpLx+evOEli?= =?iso-8859-1?Q?gs0lyma1QTL6+MtnEbtpQ7RlFGBjHy73K857pYdO9fORgw1WYExoTSAO7l?= =?iso-8859-1?Q?lAtVPWHUZgjyppCfmIT7XLgDUaXB1JmVXgfxKPjkTt+fwLkaJ42yucuVhm?= =?iso-8859-1?Q?+/iNrPfEUg=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: e8b242f8-5dbc-4e4b-b2c3-08defc23d8bb X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Aug 2026 05:53:22.3394 (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: b7TK4bF8OXSrzCciOVJc39Ajb1W7oqpXCXV3iv2qHR//T97+SJNJmuuZQ50kvYl7UgiH1t5rMrxJYve7MLLlJnHZewOpoYE1O8oMhZ1a7oU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYNPR06MB8880 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:c406::3; envelope-from=jamin_lin@aspeedtech.com; helo=OS8PR02CU002.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_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: 1786946063032158500 Content-Type: text/plain; charset="utf-8" get_dwords() returns the number of dwords it read, but every caller only tests it for failure and none of them uses the count. Return a plain bool instead, which matches how the function is actually used. Suggested-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Jamin Lin Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/usb/hcd-ehci.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index ecf98c4e19..5187ecc7e4 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -416,8 +416,8 @@ static inline bool ehci_periodic_enabled(EHCIState *s) } =20 /* Get an array of dwords from main memory */ -static inline int get_dwords(EHCIState *ehci, uint64_t addr, - uint32_t *buf, int num) +static inline bool get_dwords(EHCIState *ehci, uint64_t addr, + uint32_t *buf, int num) { int i; =20 @@ -427,12 +427,12 @@ static inline int get_dwords(EHCIState *ehci, uint64_= t addr, ehci_raise_irq(ehci, USBSTS_HSE); ehci->usbcmd &=3D ~USBCMD_RUNSTOP; trace_usb_ehci_dma_error(); - return -1; + return false; } *buf =3D le32_to_cpu(*buf); } =20 - return num; + return true; } =20 /* Put an array of dwords in to main memory */ @@ -1598,8 +1598,8 @@ static int ehci_state_waitlisthead(EHCIState *ehci, = int async) /* Find the head of the list (4.9.1.1) */ memset(&qh, 0, sizeof(qh)); for (i =3D 0; i < MAX_QH; i++) { - if (get_dwords(ehci, NLPTR_GET(entry), (uint32_t *) &qh, - ehci_qh_dwords(ehci)) < 0) { + if (!get_dwords(ehci, NLPTR_GET(entry), (uint32_t *) &qh, + ehci_qh_dwords(ehci))) { return 0; } ehci_trace_qh(NULL, NLPTR_GET(entry), &qh); @@ -1701,8 +1701,8 @@ static EHCIQueue *ehci_state_fetchqh(EHCIState *ehci,= int async) } =20 memset(&qh, 0, sizeof(qh)); - if (get_dwords(ehci, NLPTR_GET(q->qhaddr), - (uint32_t *) &qh, ehci_qh_dwords(ehci)) < 0) { + if (!get_dwords(ehci, NLPTR_GET(q->qhaddr), + (uint32_t *) &qh, ehci_qh_dwords(ehci))) { q =3D NULL; goto out; } @@ -1779,8 +1779,8 @@ static int ehci_state_fetchitd(EHCIState *ehci, int a= sync) entry =3D ehci_get_fetch_addr(ehci, async); =20 memset(&itd, 0, sizeof(itd)); - if (get_dwords(ehci, NLPTR_GET(entry), (uint32_t *) &itd, - ehci_itd_dwords(ehci)) < 0) { + if (!get_dwords(ehci, NLPTR_GET(entry), (uint32_t *) &itd, + ehci_itd_dwords(ehci))) { return -1; } ehci_trace_itd(ehci, entry, &itd); @@ -1805,8 +1805,8 @@ static int ehci_state_fetchsitd(EHCIState *ehci, int = async) assert(!async); entry =3D ehci_get_fetch_addr(ehci, async); =20 - if (get_dwords(ehci, NLPTR_GET(entry), (uint32_t *)&sitd, - sizeof(EHCIsitd) >> 2) < 0) { + if (!get_dwords(ehci, NLPTR_GET(entry), (uint32_t *)&sitd, + sizeof(EHCIsitd) >> 2)) { return 0; } ehci_trace_sitd(ehci, entry, &sitd); @@ -1866,18 +1866,18 @@ static int ehci_state_fetchqtd(EHCIQueue *q) uint64_t addr; =20 addr =3D NLPTR_GET(q->qtdaddr); - if (get_dwords(q->ehci, addr + 8, &qtd.token, 1) < 0) { + if (!get_dwords(q->ehci, addr + 8, &qtd.token, 1)) { return 0; } barrier(); memset(qtd.bufptr_hi, 0, sizeof(qtd.bufptr_hi)); - if (get_dwords(q->ehci, addr + 0, &qtd.next, 1) < 0 || - get_dwords(q->ehci, addr + 4, &qtd.altnext, 1) < 0 || - get_dwords(q->ehci, addr + 12, qtd.bufptr, - ARRAY_SIZE(qtd.bufptr)) < 0 || + if (!get_dwords(q->ehci, addr + 0, &qtd.next, 1) || + !get_dwords(q->ehci, addr + 4, &qtd.altnext, 1) || + !get_dwords(q->ehci, addr + 12, qtd.bufptr, + ARRAY_SIZE(qtd.bufptr)) || (q->ehci->caps_64bit_addr && - get_dwords(q->ehci, addr + offsetof(EHCIqtd, bufptr_hi), - qtd.bufptr_hi, ARRAY_SIZE(qtd.bufptr_hi)) < 0)) { + !get_dwords(q->ehci, addr + offsetof(EHCIqtd, bufptr_hi), + qtd.bufptr_hi, ARRAY_SIZE(qtd.bufptr_hi)))) { return 0; } ehci_trace_qtd(q, NLPTR_GET(q->qtdaddr), &qtd); @@ -1969,8 +1969,8 @@ static int ehci_fill_queue(EHCIPacket *p) } } memset(qtd.bufptr_hi, 0, sizeof(qtd.bufptr_hi)); - if (get_dwords(q->ehci, NLPTR_GET(qtdaddr), - (uint32_t *) &qtd, ehci_qtd_dwords(q->ehci)) < 0) { + if (!get_dwords(q->ehci, NLPTR_GET(qtdaddr), + (uint32_t *) &qtd, ehci_qtd_dwords(q->ehci))) { return -1; } ehci_trace_qtd(q, NLPTR_GET(qtdaddr), &qtd); @@ -2290,7 +2290,7 @@ static void ehci_advance_periodic_state(EHCIState *eh= ci) } list |=3D ((ehci->frindex & 0x1ff8) >> 1); list64 =3D ehci_get_desc_addr(ehci, list); - if (get_dwords(ehci, list64, &entry, 1) < 0) { + if (!get_dwords(ehci, list64, &entry, 1)) { break; } entry64 =3D ehci_get_desc_addr(ehci, entry); --=20 2.53.0 From nobody Mon Sep 28 00:33:13 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=1786946061; cv=pass; d=zohomail.com; s=zohoarc; b=CJVpFNGEUuwpJ3JF5jUeZNxdbTNgpu6RQs3TKaHeFfzP4Xik50lrgOpkSqcTGZSJ4hwdvauDkxPmMPhKHVfVDX1Zu93ZzZ3QfJNp5q49VYtgUjI6TcK37vgHTQ07MWeEy95nKebBpwNmsNDfforaN+Du0ZMIbEVrJwECD3jYq2Y= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786946061; 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=IixTtTuFJ+H5+YkNDoahBQ5GeFJerO7SWIVvMW8jrg8=; b=SFWmK69Dnq6/pX3u3UPa0vskZFHstP/aMSGqhdaxUCqRxy5/BM5TqAOHaWyifb8dSiMrWYbdLs5kn8RHmUeodi6RmtVAF/UHMksVWk9hFiC6ra901EAZTUMAsn4GOwVjmB8+Ps+YBwR2r2df6fIoEGdzeEsgjCVWke2KZzXatRo= 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 17869460609271001.8577577731495; Sun, 16 Aug 2026 22:54:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wvqHx-0004X6-KR; Mon, 17 Aug 2026 01:53:37 -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 1wvqHw-0004Wx-41 for qemu-devel@nongnu.org; Mon, 17 Aug 2026 01:53:36 -0400 Received: from mail-japanwestazlp170120003.outbound.protection.outlook.com ([2a01:111:f403:c406::3] helo=OS8PR02CU002.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 1wvqHu-0004hN-KQ for qemu-devel@nongnu.org; Mon, 17 Aug 2026 01:53:35 -0400 Received: from TYZPR06MB4980.apcprd06.prod.outlook.com (2603:1096:400:1cc::10) by TYNPR06MB8880.apcprd06.prod.outlook.com (2603:1096:405:3c3::13) 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 05:53:23 +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 05:53:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TPRBh4gdogrVIxXCUm1Ri542473ZO77hKWM0xtKzcLl6VdtkofxEeRDascKzCQy/iRIVTEHdiTtSZaDnY5+JFQtGLLLJtZbi8kRdL8tmkv/BIIW1FLDDeahxddeLRMc09p+jmzAuPFLCbyw9okWwTrJGU+t1ZeXxFI1IVVZfO87dWj1/cnOBSvaj2BsDHj37B75ISuM+Ap9FozTeLNw2dhiKgdQeZJfgyLE1ruCfDUTs1A+G9s4mWpCMM9zUVlcCO6IBJLoEWHUvDKNRDXXmdVJjmpJX2p4eTL0NZ2cjC6sPH1plUllWYyatHSTXEZ+7xqvrgLVQB/8DGkDQMCB+sw== 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=IixTtTuFJ+H5+YkNDoahBQ5GeFJerO7SWIVvMW8jrg8=; b=Pf8mDVMBgTF/7quJC5B1v7YsH2TFnyG5W1ZOE2AigiIt+FGPTERUrwekZQhitxGd3DuBY1y5DKH3dzgm22SNZXIay+sKE9GphO9I8h3771S3FqyfpXvVXaKuu80Oc9YzE0WOFnIALy7UYRvaNMZ8dg5WwGgapuFYLh4xaCHgt6JklOIHVZfzs4mHG9PR6vYdcq/fM2/ODKaTVANSJqYGh8BWB8uc4T92wqQC3+IjKaArWtpDRXswo9rT4LYWZVRxIZvcbBqMnJbSJ4JckYLQ6to/mBMBO4RQcnHMO5ZxM45lVTCzkCdRjKmKNhwWQA2yI1T6uq9vMxUTYZjfeaj2pg== 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=IixTtTuFJ+H5+YkNDoahBQ5GeFJerO7SWIVvMW8jrg8=; b=gWBIT/lTq3ZuM0TvjDYwnfs4aA+ca5LCmbC21gERhi9mKEABxbVY8p3rr21LvVr1MVli6Zv7azg5SDXE55+dih4338gyTiA4RxaFH/kDxyKg3TigDODAIqRmHRZo7pYNzu5SfVKOyA3PvBkk/4d7Uprk0x2t/ZGmt+ZsMW/kvd3PgjdYHioX9YFwrQ7kuelFgg0c7pWZIs6UtRUsqGr99ZSGHR69euplFhkEtgx3f6lrlHZBxui2sKa2Mvrgvzixci9TLdJ0dYQQJy/R5PHVcqtSe/vzj0v9zO3oYXL9LfrbtHeWWfKVNcJj3UJQjKcqlovqRNlr3A0GsD07XpaNhw== From: Jamin Lin To: "pbonzini@redhat.com" , "peter.maydell@linaro.org" , "philmd@oss.qualcomm.com" , "clg@kaod.org" , "clg@redhat.com" , =?iso-8859-1?Q?Philippe_Mathieu-Daud=E9?= , "open list:All patches CC here" CC: Jamin Lin , Troy Lee Subject: [PATCH v3 3/3] hw/usb/hcd-ehci: Handle get_dwords() failures in async writeback Thread-Topic: [PATCH v3 3/3] hw/usb/hcd-ehci: Handle get_dwords() failures in async writeback Thread-Index: AQHdLgy3ggyolHsi+ke7Ezp2a5QZpg== Date: Mon, 17 Aug 2026 05:53:23 +0000 Message-ID: <20260817055318.3826428-4-jamin_lin@aspeedtech.com> References: <20260817055318.3826428-1-jamin_lin@aspeedtech.com> In-Reply-To: <20260817055318.3826428-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_|TYNPR06MB8880:EE_ x-ms-office365-filtering-correlation-id: 11126d72-9f4d-4078-8b5f-08defc23d97d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|23010399003|22082099003|18002099003|56012099006|38070700021|10067099003; x-microsoft-antispam-message-info: pWSn499r3P5kFlcjy13HnYl/tr8V/EhaI+ABWQ6kC6C/p/K33EidqgiMRpvgogUa9JIABsNR2dtSM0QRo1LM3xweRavdVFcaNMpN80iYRCwFaxRI7Pfm2Vekthmms3eyvEi1yY0F/zYgsg7yddcRuBq0iyje8zW520rEWI3b19Phd+3rYbo/Nzq0zYKh4uVDR+Mc6CuXSyASkKXJfMldyN/OzgkQdhI2oAWbTqJ+j+fCM1QzUowqkAWEUFmCQ9ou5G2KcRZUlvmVkT0oDLJ8ljrZOiAjclpo2olHXV8CncZkaHfjWx5lIYDLj8NA6BZD2Pb9PTkWrwO2ESEFVZTfZc7yhVZPAL0AV1DVQGMjzZkHiMUFzSAjFG3T3RVvNcUwg6JoXTIVV+8b31P2U1Q7cvb4CcbMOq4O0T3BZuep1iW2ymUr9Ess+AFx+CrjvW5yXjsp6qJ6sZzLcNYdPip4F5ZW+g13pUld70YXgnykq6oC6h5/bpzsBUwM9d6xXh5EQJR75RgwIgDKOXI9aFP5A5xiFbnF4NlkIFrSRvkI1/wMLETJV6+p7eY8IhVFo0RA/1qDitTMG02QFqy31uWbANNZKOfw9kiRYc1E86xfXxv2DYUO1mIBf5PfymyjPhnSRuCfS9XvjS+Df+LWpY3tIHg5MkxNBVTUwEl6YP0cyReHBt2JfvRgyTIPu496EWto3dXNqJusKAemR8JVKb6ejD2l+f1/AFqLgP1uXb0A1o0= 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)(1800799024)(366016)(376014)(23010399003)(22082099003)(18002099003)(56012099006)(38070700021)(10067099003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?mimmo3nAX37qbOuBEtJNtkWHC1CKmzGw8ptYrndq+dntVUnc4w+489S7zn?= =?iso-8859-1?Q?HeOkAdRirpxdayOGnjFGlq3GI8rP6ZX+oPgJ6tX8xAl59QkbZFlw3ZpALE?= =?iso-8859-1?Q?arc16I3+JF+XJwFPjL8sAXbvrSpv4ATq8UwSNR+Kl9Vvq/Piq/aUwkEeuZ?= =?iso-8859-1?Q?443VZCJbsPshYUHeDXxM3YkaOX8eFrxb698IuATrQL7PXL1oHZYhn3kqvW?= =?iso-8859-1?Q?/teMHZYvjN41v9M3u79ivscReuW671EAUa8SiCXvjt9Kgt4iNHy+jyTn3G?= =?iso-8859-1?Q?DNVsiPrmAuv9daVO/vjeeVACQlkaRcDaG3zBDYPbbQ9d600f/0ZEHOTeuF?= =?iso-8859-1?Q?8f4hw0v7nLp4nJtmL4MClecfvV2V8lzn7iT7nsiWqE/e1NKkQPhNDRKexd?= =?iso-8859-1?Q?ivSzvw43zLw3Vz0mpzWH1h4rc20iGfo94RXks/bLSS7IGpW5A3M4q0qYYp?= =?iso-8859-1?Q?4WgFW93k5sH48fepxGQvVlQeljhjBPWmrrPQCL8AY4UBFyZX+A8LqELr8n?= =?iso-8859-1?Q?7VD4yOvfnCr05lGjbdA0tN/4r6HpJMfXz5yIJFhYo3WOIk7tbFb0c9WBuu?= =?iso-8859-1?Q?5tZDRJ1m8BhowsxWUZBWcXg/fTUQSNZSsUtt+kTaTVtPkpqZ8EjFXUMgsI?= =?iso-8859-1?Q?jDB9eoonJ9oWBui00ztYO9ut0fFR+NICoW0RXDTVNBdNyLrbkjqvbpll9i?= =?iso-8859-1?Q?GDh5UXSAOjlMqCVvFCOu3ZAKn2fUC6RtmX5BN34P6MvCEWFnxacZx6WGq8?= =?iso-8859-1?Q?UfWqLvX1wxRwTzeAStUdmsCxCP4nN2YS9M7kPLpwBPOhPvgHrPDYX44dsF?= =?iso-8859-1?Q?DeDwatMFJ71tqmEO5NrpCdROwfBBW6Zstx0+OV6MDW0icZ1SxQ9KLJ4S/W?= =?iso-8859-1?Q?Qx0BDQURnI9EkxyLXz9qIxd3B2PhYj7DAlu6NdmNdvnn2Fy/Rl5srgraFB?= =?iso-8859-1?Q?a8iFoCSKjs/8jBjQYnIbZCLFbpHI1ROF85txn4H8trPjegnB2JTfe12lAv?= =?iso-8859-1?Q?IR7G471bpJlU2vcJZuuYe0lU6i6axjIjputUiT69XAalQLTZkXqYH/egVp?= =?iso-8859-1?Q?cp5fA0nYv8xkm0nESF6OxYKV08y6CQHkbSBJKqn3aKEuBvHTXcXoKpR+c2?= =?iso-8859-1?Q?l4TzbkEb33I3V/hYzqiGU15ouxlaUIRXwWB/cNiLEMPQL7crdgsPw5G2r+?= =?iso-8859-1?Q?inVyHU9Wc9GUbwjL0TawHgHlduN/OaSfMqxYzqQ37Emj72tUSsZ8HWRzQt?= =?iso-8859-1?Q?wSk5OXIZ7Kz+XR/hGP/dF/miQ2aI9gX6t970Oq+Z+ghjAXwkZMFfrsFrUo?= =?iso-8859-1?Q?/Yf29b0OjLOVDuZ6a5M9MLpWO+uZw8e7mzcRWX1/ZTsR3hNY8RoUGIA8qw?= =?iso-8859-1?Q?voz3lbZlp3T4I+AlbxWY/grv6j/4MOn5kQWUW9M2+Rxfi4VTlF5PMZp6TQ?= =?iso-8859-1?Q?QnXMTP/izhyOfHldva7NS4l3cL0kZsQlBEfV97rh7gdoECoAdTepcMlD16?= =?iso-8859-1?Q?RHkUGWMWLk/r0l5eLRPZKERHTJznsFRpm0jYSdCiW9SoWttxx06Jw97TLA?= =?iso-8859-1?Q?T6OUFkLQu6gtXotHOJAMIl7Su2bDDe18H2xIbU77UfagqIDF/av+7FJTl+?= =?iso-8859-1?Q?r63L1hNYzGCefSYwdtXwRm1A0/0/GmVI7hrM+IzTsK2YbRRN/Snuwexf1g?= =?iso-8859-1?Q?g2Y1QL8ijxLwuovmV/M8vr95VNmWsDXKMvdDGzugn2qk2tyhJqxToBbXJB?= =?iso-8859-1?Q?KJGU1A2LECY7og69kcxi5X5gXGv4g8b973l4kkU3puEnoq+h0bfhBHzjnG?= =?iso-8859-1?Q?kloxFWIHaA=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: 11126d72-9f4d-4078-8b5f-08defc23d97d X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Aug 2026 05:53:23.5934 (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: ixSRJtIGtV1+qcADz1lpDCUZhR8sDOfVI5dtACVzSan7o2Gk45atvNqSQz6XIFgB4pq9vdQeD8olwUET1d/9jxKZOlBZ5Ey5Rm3vfZ5m5g8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYNPR06MB8880 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:c406::3; envelope-from=jamin_lin@aspeedtech.com; helo=OS8PR02CU002.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_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: 1786946063751158500 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 5187ecc7e4..f371e567f3 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -527,11 +527,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)) || + !get_dwords(q->ehci, NLPTR_GET(q->qtdaddr), + (uint32_t *) &qtd, ehci_qtd_dwords(q->ehci)) || + !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