Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2194823/?format=api
{ "id": 2194823, "url": "http://patchwork.ozlabs.org/api/patches/2194823/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210024331.3984696-2-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": "<20260210024331.3984696-2-jamin_lin@aspeedtech.com>", "list_archive_url": null, "date": "2026-02-10T02:43:32", "name": "[v2,1/2] hw/i2c/aspeed_i2c: Fix out-of-bounds read in I2C MMIO handlers", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "87e1133dca7fa41e701d31c6fae6749f6ce5d541", "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/20260210024331.3984696-2-jamin_lin@aspeedtech.com/mbox/", "series": [ { "id": 491592, "url": "http://patchwork.ozlabs.org/api/series/491592/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491592", "date": "2026-02-10T02:43:31", "name": "hw/i2c/aspeed_i2c: Fix out-of-bounds read in I2C MMIO", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/491592/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2194823/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2194823/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=Mhj+WAXZ;\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=lists.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 lists.gnu.org (lists.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 4f95WY2KGFz1xwG\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 13:44:57 +1100 (AEDT)", "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vpdj8-0007mG-T4; Mon, 09 Feb 2026 21:43:46 -0500", "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.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 1vpdj7-0007ly-2W; Mon, 09 Feb 2026 21:43:45 -0500", "from mail-japaneastazlp170120005.outbound.protection.outlook.com\n ([2a01:111:f403:c405::5] helo=TYPPR03CU001.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 1vpdj5-000297-Ed; Mon, 09 Feb 2026 21:43:44 -0500", "from TYPPR06MB8206.apcprd06.prod.outlook.com (2603:1096:405:383::19)\n by TYZPR06MB7118.apcprd06.prod.outlook.com (2603:1096:405:af::10)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.16; Tue, 10 Feb\n 2026 02:43:33 +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.9587.017; Tue, 10 Feb 2026\n 02:43:33 +0000" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=ykYC5tw3CrQG31uL/sr7uVAK28z8zHxREniNM9zXzbc+y5KSAQnAUqwv+Y5DAsFJ45t9BeM3xudB+gPqW3ee+G2ks+NuRpB9IVpUYbgzZHzAHPMhMahPQgaXg7b6BbaiKq83+svozTFaeW54slHN/0ExAr8ZIdqGXY3YYVWRSBoStKNcv2Qs4/kpye8qvOMYjG7gOL7J2aBRmsPvS3oEiFQssHwpGBr2ppPwm4Aa2GQhKu3mQLHLIPsl9blV7CrwhZRWUDnx3LwlYKfFoeRwbEREuO7uUZgyznHLSYA2QSO+1qwBxco12MvV9Qhp9jCFSYDBirhbJFvGNiumruVgsw==", "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=pIJ+iLDykOs5id3btVzlcGsJPZIa12RQ9PR7n3dHKoo=;\n b=ooUNeWScZOujQK/OHWd/nuAAqnSr2IpCU9LqTPOrnUTFmRCQwMk+1jx5qdQ0hJfAB3V7ycYUNZPMmzVe79mJCfxWh5tVS0v3NlVgI9GsLOmS7YplCvAVKPvjrb2HuE988tLS92viPFHuU+4d6VsJuLaLpW1pH9TPgGbDTsmB8WF1zwBUB71vtf/CUwinpJ5QcOBaxs7aN6cjFQv/pxH/8W4V6WbMnyvkTpCyDojnmNPT4a6aVn4pm/ejJCxCBQm7plWdxAsJA0P7RleLqFPg6S6kpx2cDJSKyflwbRR8E0WyTb092TZZJ39TzoIvxw3PMghPCli+D6Vo6LSfcbyj2w==", "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=pIJ+iLDykOs5id3btVzlcGsJPZIa12RQ9PR7n3dHKoo=;\n b=Mhj+WAXZDbJRuk9Ys09uFfq+0Xy9ICqH+lE+XlAanVdWRvRxo1GHe7UaECCPkU9drw6HlNMEmIqE1HBkdt2Lk8sWUZvgFtOtw+BILHy5qwPrnLAK1kSSXv7ONS8wE4Y7jv+sPT3d2guiZ3DNaWFRilOuqoST3ADEn9KrZ1/TbKKAycS06M81aKXA9oBcNh0L+mclVJ4fgyE8zRpd0iGqFb4FNG1v7lDvc9CacjP1rX0oc7KW9kqwM3lAFqlcmd1trPANtsQ1Rw22A1A1V3kgAjNGUY/BkPlUFoR3HYbqRoIn81fY/ohdLjHUSxWbTCqwTc/varGmD8MMrCSMfMrzpg==", "From": "Jamin Lin <jamin_lin@aspeedtech.com>", "To": "=?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 Andrew Jeffery <andrew@codeconstruct.com.au>, Joel Stanley <joel@jms.id.au>,\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 Kane Chen <kane_chen@aspeedtech.com>", "Subject": "[PATCH v2 1/2] hw/i2c/aspeed_i2c: Fix out-of-bounds read in I2C MMIO\n handlers", "Thread-Topic": "[PATCH v2 1/2] hw/i2c/aspeed_i2c: Fix out-of-bounds read in I2C\n MMIO handlers", "Thread-Index": "AQHcmjcLKKxxCIbY+UuyMY04HaSIxQ==", "Date": "Tue, 10 Feb 2026 02:43:32 +0000", "Message-ID": "<20260210024331.3984696-2-jamin_lin@aspeedtech.com>", "References": "<20260210024331.3984696-1-jamin_lin@aspeedtech.com>", "In-Reply-To": "<20260210024331.3984696-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=Mhj+WAXZ;\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=lists.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_|TYZPR06MB7118:EE_", "x-ms-office365-filtering-correlation-id": "ab9021c4-d4ab-4b2d-3887-08de684e2e82", "x-ms-exchange-senderadcheck": "1", "x-ms-exchange-antispam-relay": "0", "x-microsoft-antispam": "BCL:0;\n ARA:13230040|376014|366016|1800799024|38070700021;", "x-microsoft-antispam-message-info": "=?iso-8859-1?q?vaWQqLWAItlesJLvxrIUhY9mGB?=\n\t=?iso-8859-1?q?ZOkkc++iK6i7saC2Mz57V93oUrrp7F/FwWrvbS6kbOxLVnlgk9xjLCJE66rI?=\n\t=?iso-8859-1?q?zclw43Fpjnj8WNYlTfsFZfUEGCvbF7mcuCLhV9j979BHctgwVEkhH250/xS3?=\n\t=?iso-8859-1?q?dTy3v50UAuArbGJvncc5A37vMM7Mn6ZbvexF7qlgY2aTq5xMl30jwrnV01su?=\n\t=?iso-8859-1?q?cUNQ0K5QrZXD3SiWbwmSDbcCs5HAkkC8k7XkQ1ymGaqkduVQ9+StCaJ3FPur?=\n\t=?iso-8859-1?q?/5tr0SFk7EnTh/hh6wxOX2C7yjfmt058N5gNNrHnf6a/d9D8SRVfMhl9b+ZG?=\n\t=?iso-8859-1?q?UsDg1hTo7NzaAU2cozxGmMINSWPf60vcopLIySaxgc1kZ+OEdzV++t/+F6ee?=\n\t=?iso-8859-1?q?lmTWkWVBssUoWT1YJRb2S37PpJZG590Hy2c3W8d+KB7tsqlWvkTp0OvX4wOd?=\n\t=?iso-8859-1?q?TgiFbvzAl5NxPndx5ceAOgnahp0rx7XqSANr7HcJIuve4uOod0jHxxX6hDyq?=\n\t=?iso-8859-1?q?jckodEBIu62IyZHb1wn39jcmHIMh/F6qVw1UPXUIepAYOPE/omxFabhAdjqz?=\n\t=?iso-8859-1?q?JKbNmfQNPs68OAbKCKjlld5QEZyqZnLKn8fUToAnQTl3/K/qh5Y1hFXxos3D?=\n\t=?iso-8859-1?q?ykXZW8sXFcQqEmDEKwYPr6zS8un7y6ZM4gAI2MBqHwCmtfApRxhSPmb/EiCQ?=\n\t=?iso-8859-1?q?HRnXTyMM+CxU+FfpLtkbtVzsIjC8LbIUusljPQB8qNzx7p7+X1/+JnZBxJAy?=\n\t=?iso-8859-1?q?AlHVF4mw9QxAtZUvPq5JA9rWWS/uY424OqrvoQfjHCFeXZN26MjfEabDd4Rh?=\n\t=?iso-8859-1?q?R31WpywPcpj4S4mkEKu7OVu7FnlIxyxCe8FVAiIbLIjUllOiiCNWzhO7kah/?=\n\t=?iso-8859-1?q?rhWZNtaUEIudvAQCPXlO9lG25GchjPbIfGWVf2vTPEjllgQv/rAzYq1T7Xw2?=\n\t=?iso-8859-1?q?nQR8ONePJH0mGO3OcCTTdAiFXwEmGzlVAb7bwCWYVHHqwg0wOJIOt8Fe0oJ2?=\n\t=?iso-8859-1?q?uze8tqnkE6dMLgxaiMs0T9LOuKCrbYW4Yrawd0icMEYs8gdv/MM5Im/l8+eY?=\n\t=?iso-8859-1?q?LcCNzJod1YImr2apfYNu3PaP6EuHga4SQtO6W3rHWZq1buLrr0Z5DXQF6+w+?=\n\t=?iso-8859-1?q?Cm1ZO0Nfh8ZOZ2OTIk7RDpcwFxYxEVH+g1Wq5qfqNYlKzo6/1J6K8ruhdeHD?=\n\t=?iso-8859-1?q?d5k7pR4InOFOYYOzKqzPZyEacILScgzdGR97SuKtLm9gw5yDHkE+pMEWYtLc?=\n\t=?iso-8859-1?q?uq0ZMhnLh7FSMdhv6xNjBrvk4sFB7Ex8I+rfkaCU2RCPz38Bk0+Uextxmi0g?=\n\t=?iso-8859-1?q?djljZ5anreZi4EZkLLW8SHyLc3EMLKkz+VNrFL4/Nh4Ob0UYKoXhNBYl7CCo?=\n\t=?iso-8859-1?q?Vz1guBZgh/k2f5HM51XCqkoT3ibVZud56Kcmt9ZjaFzKoLEYDV9z8yrBbETh?=\n\t=?iso-8859-1?q?pIEt6OBX4Kh82rxXyJBTFDk99Ptd+tXmA60a5nt8/hlyKbZF7NJERSIAeN7N?=\n\t=?iso-8859-1?q?NsJTpF5fEXnQQ1s5sfBBXGe3bOo+XnO/5QnmE5dqTRbeZKr3LvLULF8Qh2uK?=\n\t=?iso-8859-1?q?ofyvHUewT4fcNaYCUQMrdFG5hB8uBbHwVf0ixHMBqhfEfVrnS7HXlsu6qjWL?=\n\t=?iso-8859-1?q?aLIvIbhR/skluT0t37guzJ/pXdpuS7TZZclkwu3UJjgwKvHJ70qZNVCV8=3D?=", "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)(366016)(1800799024)(38070700021); DIR:OUT; SFP:1102;", "x-ms-exchange-antispam-messagedata-chunkcount": "1", "x-ms-exchange-antispam-messagedata-0": "=?iso-8859-1?q?z3zThVCKAHrQFQLL7cBuFuN?=\n\t=?iso-8859-1?q?Ey1HZE1O67EkWsxt6N0p6VIkQ9eDYlcFFWCf6yQhiKFH+zdC4l3Yr/PrApnO?=\n\t=?iso-8859-1?q?UZ2iif/WnBqJTbNEwvJitaOqBXtCWSlJJJNIAsAie5ieWswZTUmGiEc+tNGq?=\n\t=?iso-8859-1?q?p04+7ho/kGnkdx2G7+5RZzZMFZm23bAuTnfH7EEczBtDGTxOM3TsXvmb4fYX?=\n\t=?iso-8859-1?q?WaGuAtXBuKdHa6XPLXZuo/ZM09XOKw8rX04P32MizLSOvRQfDSLhAm4OkguN?=\n\t=?iso-8859-1?q?H9GjwdeYBR/QbgS15juYwKbybHM5lCWJX8hTkdvJwWystE2BHDWiHBmSCCXe?=\n\t=?iso-8859-1?q?a+T++LvbUFQg+UxRqsMMkj2F+u5nHREgVhGBinELvLr0hC6Yr+O7PG0TfNcP?=\n\t=?iso-8859-1?q?fvN3BotF++7mz7WFWt4eXclxndXi4tR/MHAiIZuB69XiVRs5Ic7nKXW4d4bh?=\n\t=?iso-8859-1?q?RDXO173vr9reFLMRn5BUbhkDfh3EBbfkEfy+jdHnHkndjI+Qu7HKB7Q3xd+7?=\n\t=?iso-8859-1?q?dEny0Jw/OjdC7hncU1y7GfRHDo9w/nrR5b7pyzG0SLYCeQ5hddHFnc6Kl0Fb?=\n\t=?iso-8859-1?q?cNxtI7b1IItHfQWQW2MXaJMoVo6uWrHaKjHe10feErhfVDwTFGVbFPXO1kQJ?=\n\t=?iso-8859-1?q?Pjj04sYVJ+2WRi3FH6B6pMEgYbMhQCmzJV+FWalY6eytgRQCWta9oHObqiXM?=\n\t=?iso-8859-1?q?cXXgNhgpmj6nxU2ujiOpYzTPR/FsUZMTgmWfODmBBYFE7pwFIDCa4h0sbozA?=\n\t=?iso-8859-1?q?RRcCbH22K3kP/fUi6uBBJ+E3eKrie5cV1onnIJItgxX0R87K3ioVJPqnZtFf?=\n\t=?iso-8859-1?q?EWBk8bVHCb+n9OoEBaVsi+wksjuroBDlRdZekWaIlq8E+1ER+44pX0+JZMg6?=\n\t=?iso-8859-1?q?5ECKqExetIHEbUYNmvN3HjgVgkw5tAaJ4ETipRykOEssE/v56htsmWiLo5R3?=\n\t=?iso-8859-1?q?CVsoBs84U6r3UYGb5wRt0Q4+r9bUEfGZVTeipD/eTMlVAplaa2O+Qt1y+/i1?=\n\t=?iso-8859-1?q?r4zTyxtb1Hbk8dwwD5WWwtyBHIZdIvwAEZrBs71wAY+btwuBJAY70oLUNtiq?=\n\t=?iso-8859-1?q?UZ7VU/+U90UWPuHbprsuAtyOA6+jRhDxTDlGZTtK34nNtClTKqYyPtJZnJk0?=\n\t=?iso-8859-1?q?US3O+M83IQ9xNi5LPKuSUo3peonU7YFod2p9DiKHcMSZVcx25eA2Qvi8VCO2?=\n\t=?iso-8859-1?q?Rzy/7WP9NiQ5S+q+r9QmJNvaHC4T37DmCa7o5pVt+afvfXq3Tm6FQMXQzcEl?=\n\t=?iso-8859-1?q?8bTPF8laMwSI6b0+fTNLEQd8VtB2lw85LuxjZzvr6COYMHt4pTF4ZlecVlqV?=\n\t=?iso-8859-1?q?JTYSw4X3CjTZ80TitnrvaN0H9e8vP4YUZad9A3TPObFTR+h8B9KersIcOGmq?=\n\t=?iso-8859-1?q?c6B+f3mj+XGI1/yWoQG1UoC8UQFvYrrBz7lUUnIadxSDB5W5r1suU4Gsvqf6?=\n\t=?iso-8859-1?q?YFiKV9eUawP0eEfxQ2Yhfl9YA1q/0JjSg12Puih/8Bshdtl3MDGiDc7CRtwl?=\n\t=?iso-8859-1?q?v566PJKZMfHKOn/XWK+8bxoVPVMONClR1PReDu3iFbntOTnMhJIS3EoI7m/j?=\n\t=?iso-8859-1?q?2uf15ueFldJZDBkc2n9sr5PBRs0l68S8aINKgzAwfaaWvIdGGwM+fijxCuNd?=\n\t=?iso-8859-1?q?ucu7rZ7kAU2lU2HQSkhhSTmZ8WkMkxcxdAlZDlTPn+yrwFdeIoHH5puOXkwf?=\n\t=?iso-8859-1?q?P+A2biI1/S3rBT4ycUSbQ46QXLkyoxGslNIizsKtrdR9mm+FOdqC8GkNh6/p?=\n\t=?iso-8859-1?q?jSwwLHYcN9EoDVBZ9wkr2bPdLDU1WT5QEAKI4KcF7VaWKVg=3D=3D?=", "Content-Type": "text/plain; charset=\"iso-8859-1\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "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 ab9021c4-d4ab-4b2d-3887-08de684e2e82", "X-MS-Exchange-CrossTenant-originalarrivaltime": "10 Feb 2026 02:43:32.9663 (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 21Vt0f1AbmxWHSoBdPFENIRf+DJ8F30ZvI613OfL8XRAn4pIUUCNRZ3AA3cB3ABYUuD8cguQFpLiI/QUoYRMdXDdrzsHR0Hm9c2zoDnKaVs=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "TYZPR06MB7118", "Received-SPF": "pass client-ip=2a01:111:f403:c405::5;\n envelope-from=jamin_lin@aspeedtech.com;\n helo=TYPPR03CU001.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,\n SPF_HELO_PASS=-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": "The ASPEED I2C controller exposes a per-bus MMIO window of 0x80 bytes on\nAST2600/AST1030/AST2700, but the backing regs[] array was sized for only\n28 dwords (0x70 bytes). This allows guest reads in the range [0x70..0x7f]\nto index past the end of regs[].\n\nFix this by:\n- Sizing ASPEED_I2C_NEW_NUM_REG to match the 0x80-byte window\n (0x80 >> 2 = 32 dwords).\n- Avoiding an unconditional pre-read from regs[] in the legacy/new read\n handlers. Initialize the return value to -1 and only read regs[] for\n offsets that are explicitly handled/valid, leaving invalid offsets to\n return -1 with a guest error log.\n\nSigned-off-by: Jamin Lin <jamin_lin@aspeedtech.com>\nResolves: https://gitlab.com/qemu-project/qemu/-/issues/3290\n---\n include/hw/i2c/aspeed_i2c.h | 3 +--\n hw/i2c/aspeed_i2c.c | 22 ++++++++++------------\n 2 files changed, 11 insertions(+), 14 deletions(-)", "diff": "diff --git a/include/hw/i2c/aspeed_i2c.h b/include/hw/i2c/aspeed_i2c.h\nindex 68bd138026..1ba0112cef 100644\n--- a/include/hw/i2c/aspeed_i2c.h\n+++ b/include/hw/i2c/aspeed_i2c.h\n@@ -36,8 +36,7 @@ OBJECT_DECLARE_TYPE(AspeedI2CState, AspeedI2CClass, ASPEED_I2C)\n #define ASPEED_I2C_NR_BUSSES 16\n #define ASPEED_I2C_SHARE_POOL_SIZE 0x800\n #define ASPEED_I2C_BUS_POOL_SIZE 0x20\n-#define ASPEED_I2C_OLD_NUM_REG 11\n-#define ASPEED_I2C_NEW_NUM_REG 28\n+#define ASPEED_I2C_NEW_NUM_REG (0x80 >> 2)\n \n #define A_I2CD_M_STOP_CMD BIT(5)\n #define A_I2CD_M_RX_CMD BIT(3)\ndiff --git a/hw/i2c/aspeed_i2c.c b/hw/i2c/aspeed_i2c.c\nindex fb3d6a5600..741c7a7297 100644\n--- a/hw/i2c/aspeed_i2c.c\n+++ b/hw/i2c/aspeed_i2c.c\n@@ -94,7 +94,7 @@ static uint64_t aspeed_i2c_bus_old_read(AspeedI2CBus *bus, hwaddr offset,\n unsigned size)\n {\n AspeedI2CClass *aic = ASPEED_I2C_GET_CLASS(bus->controller);\n- uint64_t value = bus->regs[offset / sizeof(*bus->regs)];\n+ uint64_t value = -1;\n \n switch (offset) {\n case A_I2CD_FUN_CTRL:\n@@ -105,7 +105,7 @@ static uint64_t aspeed_i2c_bus_old_read(AspeedI2CBus *bus, hwaddr offset,\n case A_I2CD_DEV_ADDR:\n case A_I2CD_POOL_CTRL:\n case A_I2CD_BYTE_BUF:\n- /* Value is already set, don't do anything. */\n+ value = bus->regs[offset / sizeof(*bus->regs)];\n break;\n case A_I2CD_CMD:\n value = SHARED_FIELD_DP32(value, BUS_BUSY_STS, i2c_bus_busy(bus->bus));\n@@ -113,21 +113,20 @@ static uint64_t aspeed_i2c_bus_old_read(AspeedI2CBus *bus, hwaddr offset,\n case A_I2CD_DMA_ADDR:\n if (!aic->has_dma) {\n qemu_log_mask(LOG_GUEST_ERROR, \"%s: No DMA support\\n\", __func__);\n- value = -1;\n break;\n }\n+ value = bus->regs[offset / sizeof(*bus->regs)];\n break;\n case A_I2CD_DMA_LEN:\n if (!aic->has_dma) {\n qemu_log_mask(LOG_GUEST_ERROR, \"%s: No DMA support\\n\", __func__);\n- value = -1;\n+ break;\n }\n+ value = bus->regs[offset / sizeof(*bus->regs)];\n break;\n-\n default:\n qemu_log_mask(LOG_GUEST_ERROR,\n \"%s: Bad offset 0x%\" HWADDR_PRIx \"\\n\", __func__, offset);\n- value = -1;\n break;\n }\n \n@@ -139,7 +138,7 @@ static uint64_t aspeed_i2c_bus_new_read(AspeedI2CBus *bus, hwaddr offset,\n unsigned size)\n {\n AspeedI2CClass *aic = ASPEED_I2C_GET_CLASS(bus->controller);\n- uint64_t value = bus->regs[offset / sizeof(*bus->regs)];\n+ uint64_t value = -1;\n \n switch (offset) {\n case A_I2CC_FUN_CTRL:\n@@ -159,13 +158,12 @@ static uint64_t aspeed_i2c_bus_new_read(AspeedI2CBus *bus, hwaddr offset,\n case A_I2CS_CMD:\n case A_I2CS_INTR_CTRL:\n case A_I2CS_DMA_LEN_STS:\n- /* Value is already set, don't do anything. */\n+ case A_I2CS_INTR_STS:\n+ value = bus->regs[offset / sizeof(*bus->regs)];\n break;\n case A_I2CC_DMA_ADDR:\n value = extract64(bus->dma_dram_offset, 0, 32);\n break;\n- case A_I2CS_INTR_STS:\n- break;\n case A_I2CM_CMD:\n value = SHARED_FIELD_DP32(value, BUS_BUSY_STS, i2c_bus_busy(bus->bus));\n break;\n@@ -176,13 +174,13 @@ static uint64_t aspeed_i2c_bus_new_read(AspeedI2CBus *bus, hwaddr offset,\n if (!aic->has_dma64) {\n qemu_log_mask(LOG_GUEST_ERROR, \"%s: No DMA 64 bits support\\n\",\n __func__);\n- value = -1;\n+ break;\n }\n+ value = bus->regs[offset / sizeof(*bus->regs)];\n break;\n default:\n qemu_log_mask(LOG_GUEST_ERROR,\n \"%s: Bad offset 0x%\" HWADDR_PRIx \"\\n\", __func__, offset);\n- value = -1;\n break;\n }\n \n", "prefixes": [ "v2", "1/2" ] }