Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2227051/?format=api
{ "id": 2227051, "url": "http://patchwork.ozlabs.org/api/patches/2227051/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260423051804.362095-6-jamin_lin@aspeedtech.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260423051804.362095-6-jamin_lin@aspeedtech.com>", "list_archive_url": null, "date": "2026-04-23T05:18:11", "name": "[v4,05/17] hw/usb/hcd-ehci.c: Replace fprintf(stderr, ...) with qemu_log_mask(LOG_GUEST_ERROR)", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "445bb0025185483a3a855b02c1f178bff2e5875b", "submitter": { "id": 81768, "url": "http://patchwork.ozlabs.org/api/people/81768/?format=api", "name": "Jamin Lin", "email": "jamin_lin@aspeedtech.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260423051804.362095-6-jamin_lin@aspeedtech.com/mbox/", "series": [ { "id": 501145, "url": "http://patchwork.ozlabs.org/api/series/501145/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=501145", "date": "2026-04-23T05:18:08", "name": "hw/usb/ehci: Add 64-bit descriptor addressing support", "version": 4, "mbox": "http://patchwork.ozlabs.org/series/501145/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2227051/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2227051/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=aspeedtech.com header.i=@aspeedtech.com\n header.a=rsa-sha256 header.s=selector1 header.b=icdhc6zC;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=aspeedtech.com;" ], "Received": [ "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1Pb80ts1z1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 15:21:40 +1000 (AEST)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFmSI-0007S0-2i; Thu, 23 Apr 2026 01:18:26 -0400", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <jamin_lin@aspeedtech.com>)\n id 1wFmSG-0007Qm-HV; Thu, 23 Apr 2026 01:18:24 -0400", "from mail-japaneastazlp170130007.outbound.protection.outlook.com\n ([2a01:111:f403:c405::7] helo=TYDPR03CU002.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <jamin_lin@aspeedtech.com>)\n id 1wFmSE-0003DU-Gt; Thu, 23 Apr 2026 01:18:24 -0400", "from TYPPR06MB8206.apcprd06.prod.outlook.com (2603:1096:405:383::19)\n by KUXPR06MB8534.apcprd06.prod.outlook.com (2603:1096:d10:9d::22)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Thu, 23 Apr\n 2026 05:18:12 +0000", "from TYPPR06MB8206.apcprd06.prod.outlook.com\n ([fe80::e659:1ead:77cb:f6d3]) by TYPPR06MB8206.apcprd06.prod.outlook.com\n ([fe80::e659:1ead:77cb:f6d3%3]) with mapi id 15.20.9846.021; Thu, 23 Apr 2026\n 05:18:12 +0000" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=UByi7naDUPFNYOX4FUXm+p1hgpoNh9g1LOPAA5CwVAKYAUpDBPLiIy/BOTOPThcOxRKOGyk7bs7rQ+sYGBb5P1sGv7Vek3w3ddi0m/qRw5uGr3weSxflfOJrFBxvt0eocd/UMAntVLKgLrOs1oMVXOvSSuFmMhekbhHvW7c298Gcx8XKHQ9uHCdljUQc0vWXOsOPQgOvESRgMLeTSJjOfpzNCusexvtAn+q3U+erQWJOHUM7HNwACf3+BJIdC2TrXxg1zy4++V1eInCa3wMG2kUnbfnvEiVmHS37GWjWcEm72XFJyksNP+YBBv90xQqVt7bVNbys0//tG0pcDBvuLQ==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=uLnu5u7DxEgQ5GaT5hrWW4BFD9Nj4zSz6MJdDP2QXps=;\n b=klpxhEnhQCBVfMt0LuNWEQT+CC3TLV9YUzLfROLpAe4ZOHuhfEy9d1hkGrhBOLXxaRz0Q0QiRL33V2brMQt1ylbHmwgF+Oo+oX4USdONc/TD0LUb0B61mrZD7s4aaccveB7yAvHefZPTpJvZRpSvQL929InHLfhZS3JhgWy4rkEr0og7mBJk9aYzScZWIf/lW1/DUGLdJblwSeo5G47erMF9cVLu85ibn1qmGX0BPLlHpDdgzwRrtmmwfSfFtokvq8fVcSIx5Y+/fB9hoG2pcMPPI9kAYE42dlYoNIucX7hes/qAXAdc+Kl7GY08Rtl0a1HjsvWSE/qS/57/35FNfA==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=aspeedtech.com; dmarc=pass action=none\n 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;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=uLnu5u7DxEgQ5GaT5hrWW4BFD9Nj4zSz6MJdDP2QXps=;\n b=icdhc6zCBCzDwwaZEDdDHbpa6nL+1h8pcVGSRbEOzvKvLDuFbFeiUl432ycWmcXfP1H7U0fWpuDR2++07um0LNpqgllRFXTU777K/BGIMbaswpD1SOWmb8yr2qs53LwV/OsssAthqEnuldY23Ljb02gXvGVJ4QVPUleEEtvRcWeoBUXsA7F/GQTqDTOYnWQbtx5uJL/awbNDayLQu2MSaICFmrBGFcQU7JjQxlrStjt3p6wpLXKqIQSQu4ig0T7MwcuLjuxe4Q4TwBFX0EeTuuOoTINsHSYEKR/9au4FDyF/z/G7Eas4J7Hw63qA/L6NcWhpUVK1AtIhD54K19NzcQ==", "From": "Jamin Lin <jamin_lin@aspeedtech.com>", "To": "\"philmd@linaro.org\" <philmd@linaro.org>,\n \"peterx@redhat.com\" <peterx@redhat.com>,\n =?iso-8859-1?q?C=E9dric_Le_Goater?= <clg@kaod.org>,\n Peter Maydell <peter.maydell@linaro.org>,\n Steven Lee <steven_lee@aspeedtech.com>, Troy Lee <leetroy@gmail.com>,\n Kane Chen <kane_chen@aspeedtech.com>,\n Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>,\n Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,\n Yanan Wang <wangyanan55@huawei.com>, Zhao Liu <zhao1.liu@intel.com>,\n \"open list:ASPEED BMCs\" <qemu-arm@nongnu.org>,\n \"open list:All patches CC here\" <qemu-devel@nongnu.org>", "CC": "Jamin Lin <jamin_lin@aspeedtech.com>, Troy Lee <troy_lee@aspeedtech.com>,\n \"flwu@google.com\" <flwu@google.com>, \"nabihestefan@google.com\"\n <nabihestefan@google.com>, \"farosas@suse.de\" <farosas@suse.de>", "Subject": "[PATCH v4 05/17] hw/usb/hcd-ehci.c: Replace fprintf(stderr, ...) with\n qemu_log_mask(LOG_GUEST_ERROR)", "Thread-Topic": "[PATCH v4 05/17] hw/usb/hcd-ehci.c: Replace fprintf(stderr, ...)\n with qemu_log_mask(LOG_GUEST_ERROR)", "Thread-Index": "AQHc0uCUtNQZ7e3fhUa/Oxy4/dmvpA==", "Date": "Thu, 23 Apr 2026 05:18:11 +0000", "Message-ID": "<20260423051804.362095-6-jamin_lin@aspeedtech.com>", "References": "<20260423051804.362095-1-jamin_lin@aspeedtech.com>", "In-Reply-To": "<20260423051804.362095-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": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=aspeedtech.com header.i=@aspeedtech.com\n header.a=rsa-sha256 header.s=selector1 header.b=icdhc6zC;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=aspeedtech.com;" ], "x-ms-publictraffictype": "Email", "x-ms-traffictypediagnostic": "TYPPR06MB8206:EE_|KUXPR06MB8534:EE_", "x-ms-office365-filtering-correlation-id": "e78e3033-ee81-4cfb-0438-08dea0f7b6f1", "x-ms-exchange-senderadcheck": "1", "x-ms-exchange-antispam-relay": "0", "x-microsoft-antispam": "BCL:0;\n ARA:13230040|376014|7416014|1800799024|366016|38070700021|921020|18002099003|22082099003|56012099003;", "x-microsoft-antispam-message-info": "\n AJX68LQZ9m0BmY7NTg6aFJTWfuTc6rsUmRljJ4nXriOhk7Mo9OC+RHSPjE3B+M46KKS1zBTVVWpmbFV2lGV9pPd3bxvvj4xIYb/u/sPWQkQZOwQcvgsTLKgBIna0tjDGOcUIrIMSy/V/ka6E6e1nTh88NG5bCwvS4L70BwnXN7jT3p4V6U+pqiGTIqmYr1gOh99I1U7dMIzKl/vb934f/suIiBP6qMPnQnAVO0PdAIt+p+0lHyfhwkp9H76cvs5r3pqBW2s8gHzM9it/B5zjWmBrF65FJBeYH8ddB2lPHG2MXOuzy8BUIasbnYQyABPPVLkuqyaeol/LJ9Mh2UXv8tvPTVHzTbavtkwsW+LTuHeKOa8wHqXoNtAWGylTYnowveH+C5m9J8QOiCNnXisBfKA7hNpFNn2jFMP7+Ob/fRDNgY+3XN0hDnql6eOxVVMctzfrrsqKZTpfykq4zsYgMdJlYmMk4pZB7HBwejTOnv/bLK5VYpuscaDhKvccic+sfYrqohOcwZKFJrSrLpQTUHKzTJyBaub4yCpCP8Bl2e/vU3AI31ADIANDbsUvO44WEfXhi2YAV26RcD1ux0wmt5N/NLI52mQ2Kja667ll6VpBFboUSe7F6HF4nNNU7w6n3v5J1Qc6l22vU+e3uJlHiQdtcj0LcHjkrJQ0up+wDIywxg0aOLTPETgJz+r9BxtOLwMf8YG/O0pE2UwCOsltqIESFPSTfTyPCkBrF5l32Zt5aPPV+mqofeRw56VkXfDduBLgZB3OHt3z2aiWhdEheH4m5Y6LI1XxosF+Pq6Ut00iPgGb0d6OOC/q4hkeLeyx", "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:TYPPR06MB8206.apcprd06.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(376014)(7416014)(1800799024)(366016)(38070700021)(921020)(18002099003)(22082099003)(56012099003);\n DIR:OUT; SFP:1102;", "x-ms-exchange-antispam-messagedata-chunkcount": "1", "x-ms-exchange-antispam-messagedata-0": "=?iso-8859-1?q?dP4R+2OevbSLgsW07Gvl7U8?=\n\t=?iso-8859-1?q?gx124nGQ6Qat7npTMV0dJunjncXvbxWn67Pu4LpSBx/33ARdrSlw5gEOPJ9v?=\n\t=?iso-8859-1?q?2uvD73PNAkggD88csKPEGvotPg3ZJK06xJkoR1I5Y0MC3kpin3SbViS1f3Fp?=\n\t=?iso-8859-1?q?ENrZRipVI+6R0m7z25WYIm/MIk+zlwE7Wa8AnPcAm8PxlmS+5YIFyitn4YOz?=\n\t=?iso-8859-1?q?OBhM3/M27+x0fFv86uDCyv7uypUG3pw9QcrwQ7TFqN0AOur+565QCn393DSx?=\n\t=?iso-8859-1?q?5gfrwxCkt72C101i92HXB2/XDtLPAXgWG0QCYtgZS6h/MQeT17IxjgMnUPTU?=\n\t=?iso-8859-1?q?Pxm7lFdozJQhvBNIw2kSJA1lSVyaOAS7ENvS3vkTYec3B0tFd9EWdPhpX7pV?=\n\t=?iso-8859-1?q?RypiYI7apXQHxHXG8NNjR3ioBXBi104joiZ3vakcr+cnE/CjWMBwGNl2znEl?=\n\t=?iso-8859-1?q?nBzCL2Rnj3Edd+NlYiVY1+/IEiFkXhXVsV10f+0RZeT+7/ZhI+623qXx5UxV?=\n\t=?iso-8859-1?q?REqRyGAEYKXwTE6DhAVS0xuHhodrA8rIpmY77l59O3T6Jh9M/8zw4xOA9MSa?=\n\t=?iso-8859-1?q?oKEN+ioVB34aRtgI19wN//zvPeDFmuEVlo1Aou2v47EoC1Arbc0zjcRc7XyQ?=\n\t=?iso-8859-1?q?ESNpasGhVbCEkZ//DQcHTR6z9A6IGTNB3/tUSSdcIYjnyByPl/CFSY4U39dH?=\n\t=?iso-8859-1?q?waFxFCfBgAc+L026LpmjGQLdcX5y/B0XlpZYrv5A1uJ81vNs1x9NGRGj4qqx?=\n\t=?iso-8859-1?q?9aJB0/EF9uXLmc38lIkQxTDdVXqdpoByE0a7dxqlWJMn064VRQZrGT6BcpEc?=\n\t=?iso-8859-1?q?ijhHxlI3fPg1vHz7YdYLsCUveTwPhBVMHp3DwXaK0vnMK0xtxEMfBn4l3V/2?=\n\t=?iso-8859-1?q?W9QXDGbvHiNIdHI+9B5CIjnOR96meJVqt3fP/TXrhQW8DCjmsOs78L4v1jL9?=\n\t=?iso-8859-1?q?6xeWNdayj71Vw8TuTjSIc91JEns0tjdMr9vTFXP4F1jWiIB6669cpqBVhm8U?=\n\t=?iso-8859-1?q?Wr1qGG0zXCkakF3ak1f3ynpEiS/UdfScuVFAIMYE+a1rLTVLA42mgpWxSZzX?=\n\t=?iso-8859-1?q?l2gcNCY3AFPd5IbCSp59Bf2S6NL8cQFwpFdyH61HycBFkoGzXTx7OONSMRHn?=\n\t=?iso-8859-1?q?tYQJxOnjH8aunVrOTPT3R6rCd2jWcJaM+Q1GT21yTAdq333WnkzQJQj19WOp?=\n\t=?iso-8859-1?q?UWRTY8oEZojaW/8c3xuzk7b48FM4alBfTYcIR4Vx0ULt/EuXnkF+N0iKJgsw?=\n\t=?iso-8859-1?q?3J3+sAehBUAOu/FOcCCj75D/L7xJZey/vUnsWZX4hqb4Hs9KKDl6ww1G08fL?=\n\t=?iso-8859-1?q?vYRJTwaXqt/s/k/xcQHfDZ4ZdpO09dl4faemTywdMirzb4+X+dF+1z5cbqpw?=\n\t=?iso-8859-1?q?REVrQ7hPkVo9bcbthCzDtjAUz2Dd6vewVkGn//Aq9eOI/urpzc5J7j3GeZBc?=\n\t=?iso-8859-1?q?iAVUTnWO7Az19KiT+8+RBc5UJyAFr42hTXchWvas1MihQKRhPc6PklEQfiUe?=\n\t=?iso-8859-1?q?47dj+M8Y/FgxQRVd9AdGO/eIKqDkhnBi9qySjSCIkdZ6sT08zdIT2dYGBoN9?=\n\t=?iso-8859-1?q?1SiDL3TFDMGyf+5y2rK3phYq0zNE7tn8b6K4Ha0aPIU2IKo3X4nxaG9QtM4z?=\n\t=?iso-8859-1?q?rA6kIk4RaCQq3xK4yTa/2++oI98VGUF0eWTwkiCipDdn+0n/L6N0kwOnq2e1?=\n\t=?iso-8859-1?q?KhBQL6JjxQU7rZ9wTk1kMbLslUO3x18EeQhTG5K5cDbCedqw6a05DZDnmGJ6?=\n\t=?iso-8859-1?q?sWUD6NWKRT3IyfQ6PQCMVzcK8fexWwXrShFVUXAYdIHDtZw=3D=3D?=", "Content-Type": "text/plain; charset=\"iso-8859-1\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-Exchange-RoutingPolicyChecked": "\n Ml9Bf011rc6w9e2erL1Ok/offmb1sh9Bp9nrvxTZWWKIc2XbuMTd1pM2OxjCSpwWKcJO/JzJ1PeSolaZjqIw/9NRQx5SOYKX2nlKvid3MhUs75fXjhuG5n2V/gIOl6vgahoJxIkYcAPEb2oPXPPNbezZ+87rl3H0XjDrFERriXPpMkjOLffNm9/aJm+6vXFs3fcbOxcV27UQLwkdIaEaJlEa/ta7WAW7PYyp1TyuwWRUuwQPu7pUPe9qOF4fOKCTMbTPzzfltXB+LUtaWFM8lq34ygmDXOvsuHH32GoOyjTFwk5nzFwwtMqO9Isbb8urp3q+OIaiWAz16cfXXVqGug==", "X-OriginatorOrg": "aspeedtech.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-AuthSource": "TYPPR06MB8206.apcprd06.prod.outlook.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n e78e3033-ee81-4cfb-0438-08dea0f7b6f1", "X-MS-Exchange-CrossTenant-originalarrivaltime": "23 Apr 2026 05:18:11.9161 (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": "\n vonMyzH+9TD/VkqHUiJCzNsh9a6djpOWu+c5BPLda/trPxmnJ0i7qtR6ux1rOq9PVElJkxEP5Xw680sexcCVesJxhODpPYrew3LHFpjAGc0=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "KUXPR06MB8534", "Received-SPF": "pass client-ip=2a01:111:f403:c405::7;\n envelope-from=jamin_lin@aspeedtech.com;\n 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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001,\n 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 <qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org" }, "content": "Replace direct fprintf(stderr, ...) calls with qemu_log_mask()\nusing LOG_GUEST_ERROR in the EHCI controller implementation.\n\nDirect writes to stderr are discouraged in QEMU as they bypass\nthe logging framework and cannot be filtered or controlled at\nruntime. Using qemu_log_mask() ensures that guest-visible errors\nare properly categorized and can be managed via QEMU logging\noptions.\n\nAll affected messages correspond to guest-triggerable error\nconditions, so LOG_GUEST_ERROR is used consistently.\n\nThis change improves integration with QEMU's logging infrastructure\nand aligns with upstream coding guidelines.\n\nSigned-off-by: Jamin Lin <jamin_lin@aspeedtech.com>\n---\n hw/usb/hcd-ehci.c | 46 +++++++++++++++++++++++++---------------------\n 1 file changed, 25 insertions(+), 21 deletions(-)", "diff": "diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c\nindex 7e0b767eb9..8acaedeaa9 100644\n--- a/hw/usb/hcd-ehci.c\n+++ b/hw/usb/hcd-ehci.c\n@@ -36,6 +36,7 @@\n #include \"qemu/error-report.h\"\n #include \"qemu/main-loop.h\"\n #include \"system/runstate.h\"\n+#include \"qemu/log.h\"\n \n #define FRAME_TIMER_FREQ 1000\n #define FRAME_TIMER_NS (NANOSECONDS_PER_SECOND / FRAME_TIMER_FREQ)\n@@ -425,7 +426,7 @@ static int ehci_get_pid(EHCIqtd *qtd)\n case 2:\n return USB_TOKEN_SETUP;\n default:\n- fprintf(stderr, \"bad token\\n\");\n+ qemu_log_mask(LOG_GUEST_ERROR, \"bad token\\n\");\n return 0;\n }\n }\n@@ -532,7 +533,7 @@ static void ehci_free_packet(EHCIPacket *p)\n }\n if (p->async == EHCI_ASYNC_FINISHED &&\n p->packet.status == USB_RET_SUCCESS) {\n- fprintf(stderr,\n+ qemu_log_mask(LOG_GUEST_ERROR,\n \"EHCI: Dropping completed packet from halted %s ep %02X\\n\",\n (p->pid == USB_TOKEN_IN) ? \"in\" : \"out\",\n get_field(p->queue->qh.epchar, QH_EPCHAR_EP));\n@@ -1042,8 +1043,9 @@ static void ehci_opreg_write(void *ptr, hwaddr addr,\n \n /* not supporting dynamic frame list size at the moment */\n if ((val & USBCMD_FLS) && !(s->usbcmd & USBCMD_FLS)) {\n- fprintf(stderr, \"attempt to set frame list size -- value %d\\n\",\n- (int)val & USBCMD_FLS);\n+ qemu_log_mask(LOG_GUEST_ERROR,\n+ \"attempt to set frame list size -- value %\" PRId64\n+ \"\\n\", val & USBCMD_FLS);\n val &= ~USBCMD_FLS;\n }\n \n@@ -1101,7 +1103,7 @@ static void ehci_opreg_write(void *ptr, hwaddr addr,\n \n case PERIODICLISTBASE:\n if (ehci_periodic_enabled(s)) {\n- fprintf(stderr,\n+ qemu_log_mask(LOG_GUEST_ERROR,\n \"ehci: PERIODIC list base register set while periodic schedule\\n\"\n \" is enabled and HC is enabled\\n\");\n }\n@@ -1109,7 +1111,7 @@ static void ehci_opreg_write(void *ptr, hwaddr addr,\n \n case ASYNCLISTADDR:\n if (ehci_async_enabled(s)) {\n- fprintf(stderr,\n+ qemu_log_mask(LOG_GUEST_ERROR,\n \"ehci: ASYNC list address register set while async schedule\\n\"\n \" is enabled and HC is enabled\\n\");\n }\n@@ -1200,7 +1202,7 @@ static int ehci_init_transfer(EHCIPacket *p)\n \n while (bytes > 0) {\n if (cpage > 4) {\n- fprintf(stderr, \"cpage out of range (%u)\\n\", cpage);\n+ qemu_log_mask(LOG_GUEST_ERROR, \"cpage out of range (%u)\\n\", cpage);\n qemu_sglist_destroy(&p->sgl);\n return -1;\n }\n@@ -1306,7 +1308,8 @@ static void ehci_execute_complete(EHCIQueue *q)\n break;\n default:\n /* should not be triggerable */\n- fprintf(stderr, \"USB invalid response %d\\n\", p->packet.status);\n+ qemu_log_mask(LOG_GUEST_ERROR, \"USB invalid response %d\\n\",\n+ p->packet.status);\n g_assert_not_reached();\n }\n \n@@ -1354,7 +1357,7 @@ static int ehci_execute(EHCIPacket *p, const char *action)\n p->async == EHCI_ASYNC_INITIALIZED);\n \n if (!(p->qtd.token & QTD_TOKEN_ACTIVE)) {\n- fprintf(stderr, \"Attempting to execute inactive qtd\\n\");\n+ qemu_log_mask(LOG_GUEST_ERROR, \"Attempting to execute inactive qtd\\n\");\n return -1;\n }\n \n@@ -1395,7 +1398,8 @@ static int ehci_execute(EHCIPacket *p, const char *action)\n p->packet.actual_length);\n \n if (p->packet.actual_length > BUFF_SIZE) {\n- fprintf(stderr, \"ret from usb_handle_packet > BUFF_SIZE\\n\");\n+ qemu_log_mask(LOG_GUEST_ERROR,\n+ \"ret from usb_handle_packet > BUFF_SIZE\\n\");\n return -1;\n }\n \n@@ -1479,8 +1483,9 @@ static int ehci_process_itd(EHCIState *ehci,\n case USB_RET_SUCCESS:\n break;\n default:\n- fprintf(stderr, \"Unexpected iso usb result: %d\\n\",\n- ehci->ipacket.status);\n+ qemu_log_mask(LOG_GUEST_ERROR,\n+ \"Unexpected iso usb result: %d\\n\",\n+ ehci->ipacket.status);\n /* Fall through */\n case USB_RET_IOERROR:\n case USB_RET_NODEV:\n@@ -1584,7 +1589,8 @@ static int ehci_state_fetchentry(EHCIState *ehci, int async)\n \n /* section 4.8, only QH in async schedule */\n if (async && (NLPTR_TYPE_GET(entry) != NLPTR_TYPE_QH)) {\n- fprintf(stderr, \"non queue head request in async schedule\\n\");\n+ qemu_log_mask(LOG_GUEST_ERROR,\n+ \"non queue head request in async schedule\\n\");\n return -1;\n }\n \n@@ -1606,8 +1612,10 @@ static int ehci_state_fetchentry(EHCIState *ehci, int async)\n \n default:\n /* TODO: handle FSTN type */\n- fprintf(stderr, \"FETCHENTRY: entry at %X is of type %u \"\n- \"which is not supported yet\\n\", entry, NLPTR_TYPE_GET(entry));\n+ qemu_log_mask(LOG_GUEST_ERROR,\n+ \"FETCHENTRY: entry at 0x%x is of type %u \"\n+ \"which is not supported yet\\n\",\n+ entry, NLPTR_TYPE_GET(entry));\n return -1;\n }\n \n@@ -2118,13 +2126,13 @@ static void ehci_advance_state(EHCIState *ehci, int async)\n break;\n \n default:\n- fprintf(stderr, \"Bad state!\\n\");\n g_assert_not_reached();\n }\n \n if (again < 0 || itd_count > 16) {\n /* TODO: notify guest (raise HSE irq?) */\n- fprintf(stderr, \"processing error - resetting ehci HC\\n\");\n+ qemu_log_mask(LOG_GUEST_ERROR,\n+ \"processing error - resetting ehci HC\\n\");\n ehci_reset(ehci);\n again = 0;\n }\n@@ -2181,8 +2189,6 @@ static void ehci_advance_async_state(EHCIState *ehci)\n \n default:\n /* this should only be due to a developer mistake */\n- fprintf(stderr, \"ehci: Bad asynchronous state %d. \"\n- \"Resetting to active\\n\", ehci->astate);\n g_assert_not_reached();\n }\n }\n@@ -2231,8 +2237,6 @@ static void ehci_advance_periodic_state(EHCIState *ehci)\n \n default:\n /* this should only be due to a developer mistake */\n- fprintf(stderr, \"ehci: Bad periodic state %d. \"\n- \"Resetting to active\\n\", ehci->pstate);\n g_assert_not_reached();\n }\n }\n", "prefixes": [ "v4", "05/17" ] }