From patchwork Fri Oct 11 15:31:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13832693 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 14F13D0D7BB for ; Fri, 11 Oct 2024 15:43:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=L1ERM/8wrAcld2CBubSctUu43sT3fAk/B7hSFIIETS4=; b=yH5897Aw6Lq0lUb+0M5VJm87VJ 9WD9ynAusto8FHo17GAdurle3iwbOfru21OCqcBv6VTwQJfcxKyZpQ42wTGM7XMefdX8EtvV0yHqu DJCWQqIIameT3dF2QsypywF0GFHzG6Oz0rJZ+OV6PoI7iJ4ekyaIAyiLpddQlg4FB1sw/rr9c/Svk pzxRyFRtIREqWLQwFilQZ6P7QfaM5WSIbWrcpGFpZrC4AT8trO0AI3u4+lQyBcg0mf6y8z2KKZfEk dpsKU49gFEv3mqnQxQxQX25/TIMyKhPU/TjL7PJJAnDeX6XrmbhUsLqW4CeVg2vGpcw9bkjHH6/H3 9vNBqlww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1szHnC-0000000GpwA-3x9h; Fri, 11 Oct 2024 15:43:02 +0000 Received: from mail-am7eur03on2075.outbound.protection.outlook.com ([40.107.105.75] helo=EUR03-AM7-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1szHck-0000000GoO2-1JbS for linux-arm-kernel@lists.infradead.org; Fri, 11 Oct 2024 15:32:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JLsMksbZ7ldFthLQgSBiinu453UTWNWDNGfUfR3GUuEOJ0BgpNJvnr5fTWskiQUjQYtIuVAU4D006lFQwn3S1fcvReitIyXR0AbyNTmlAJK+iYIJcKoB+TQ9QZj2ujzAuqUTBXNb/lanwRf2eXx65h1nXyynv1cbWICdLM/+KBhPbUe7pW5UaSFMNWtCnEpkF467H8EYhoduUiTMQdQwYsfalaI5CPGRQpPYZ7DypkFD5LqJ/b8J1gfVWX43Cq98cLYmGywcru900yLDLzxXRAXfCzjC0XXBWxI4bAm3DC8+JzckluR/uX8q1xd2wsSnwyvFduceMaVnqjrYqFhZdA== 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=L1ERM/8wrAcld2CBubSctUu43sT3fAk/B7hSFIIETS4=; b=o+f/cSgD11bMsD8XzB/IXsuWxGldJZnt9zj/2fQkKW2uWj0mWBd/97DSrlcWzdTYSL1xE8Hy0PgI562ceKdoYP/4tTLCrAEFAjZlvFX5flCOLLl5AfoDXGgZUFXLqCQjn+Iv59RVwwBOhjP6jOCACMss+y8XDjFLRmxyrC6BdtcjpSpsHHfIdeSDStMQ1Ht3C9kzHtIRyevW01e9YRmw4yLebvchPtvBxrKDe2mRF00+Q8JEMIawtcLbK2ohmrA89euFvwvG4m1yjfkUBHWVcTicuBXGB+7VUTrB1FsS6LOpbpFMcavKoyCdJuoZD1N55H7xuhkfs2Q7OmTFdXXunw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L1ERM/8wrAcld2CBubSctUu43sT3fAk/B7hSFIIETS4=; b=G0P0puEGzrIe3TKl0oNVtsIBYB3BnJYZzuVpU5MGDO23AR+U8qMvHrsRFGjGs2KGI0U8RfIrlzj20JSho4lRSiUAfyJr+Y+8aGW9jtGC5LluFrrinHGwG0myFMGFNdrPLPvbSTjE3aZxulwxgAghu12OCSfNW2nepdECOz5L2mnASwuaYy5YKKVlIPzLn9Yq2aBf2GSH2466pVNKIWp+mZze+cnF4xxQC5VMU5NSjfn0RsdSYY7+I5JSwHJUwumfr+mu6XU4OoB8IoAML+IzKE2aFPBYVlmV56BZa7TD7cLOHbasItb3kekYDHA0ea1m/T8nUVGprGdPxUsV3f7FnA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VE1PR04MB7360.eurprd04.prod.outlook.com (2603:10a6:800:1a3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.23; Fri, 11 Oct 2024 15:32:06 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%4]) with mapi id 15.20.8048.013; Fri, 11 Oct 2024 15:32:06 +0000 From: Frank Li Date: Fri, 11 Oct 2024 11:31:31 -0400 Subject: [PATCH v2 3/6] EDAC/fsl_ddr: Fix bad bit shift operations Message-Id: <20241011-imx95_edac-v2-3-011b68290951@nxp.com> References: <20241011-imx95_edac-v2-0-011b68290951@nxp.com> In-Reply-To: <20241011-imx95_edac-v2-0-011b68290951@nxp.com> To: York Sun , Borislav Petkov , Tony Luck , James Morse , Mauro Carvalho Chehab , Robert Richter , Krzysztof Kozlowski , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org, Borislav Petkov , devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Frank Li , Priyanka Singh , Sherry Sun , Li Yang X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1728660703; l=1906; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=+xRnp+RgtbOKGy8sOPUGCuuHfdPE/AGGQkiNocVxHng=; b=SMO52SX0EcGfPBqBbXpSDQbbPJX77GVtYwAMuCSnjLrGcDJ/ZFR56hKvD8MaU9TYgbn5zZv6X SFvzBe7b28uClXDQP20eGC60xpABjgiLBoGg2PWiMggsbsRFik+ii9U X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: BY3PR04CA0014.namprd04.prod.outlook.com (2603:10b6:a03:217::19) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VE1PR04MB7360:EE_ X-MS-Office365-Filtering-Correlation-Id: 81e99a82-bff9-4492-ba7d-08dcea09dcbd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|376014|366016|7416014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?CyyCHkaJUXC1fTrgNN1EvLkJ7iilh6f?= =?utf-8?q?OAGkIpYp//0H5ugn/vdAlYoSB2DecKQLM4joZG6H28xFS0waD/BWLMBjB0xHXNxkL?= =?utf-8?q?RS8BhwMBOy2rt9tRyreCz2BrtbPmk++sxZmDoZJWn5mKIT7xIb1eZ1aJg1/3Kulf4?= =?utf-8?q?iyxjkMrdw2lOl7GFzOeL87gNYJ3wR6p+5ZYpmXjqT5QX2uH1EUs8IqhhEB+a06MT+?= =?utf-8?q?lURRoowObRCNfLDjHnBeP4fgxD5efRt6Tk7chBBzQahvEzLkNyu2K4N5/aAXa57qp?= =?utf-8?q?u5qR6YlNlwG/Y6hVbNzqY5O6guFs7dqkCtXcm+BZ6vLMpErksvN4EwU/lA4+ui9Tt?= =?utf-8?q?IkS16azYt8U7zO4fjm8JIdq7wSQx/GKUzto1gLkUhXHTFN7zcGXQ7jSoUMQWNKsI5?= =?utf-8?q?O9K3u8UURFdIXBUqN1bTrBGUQH1TRjhfQ0qv8ZKCM8CTxzoqc5H62UVnkwWFgPkvX?= =?utf-8?q?UwvPj2kemVPGqOBZoLr2CFBhbJ0EO0LGVwmKr64BE1N1nQmFlsaJu5ij5t5SqOmaG?= =?utf-8?q?R1EBnocNG46XDqW99SIRmCqA36cZKS7z5Ak6yEAM41Hj4g0n84D4yr4+KC9rjI+Dn?= =?utf-8?q?4gffcsiuFF0fflUmIDni0+G9uLNv/a6m1nD7OVCjABiVWsaUsozoiHnpq1/erSJc5?= =?utf-8?q?Q1XjG+6svBjRQG9AfAt7gwz3j6D8Y5GCDaZNrKD+lNpt3kGQeykrzGXbFONs9N8pY?= =?utf-8?q?wSIzLBa/pTbrPgedr4idxsh7dAXK7fGIZO+T94oPe6xV/bUhUwvBthyOQAPBkQJCm?= =?utf-8?q?EL988Lpyqyx/HjIYhQTlJz4dJKupMIdLVs1dxmEu3F1Spds9ownqYQspXKxBbSbmB?= =?utf-8?q?wGsOX7tNLUYwAg2bSyCTUFBcWhZNlvZEAyejAvEhAfGmGJd/5HbH1GmZppniaZdRq?= =?utf-8?q?HNDLQ9u9rnjI0OExR7Hx/hmwmjmhf/cH3KA6bntC57cslCa76DCErm1LD2bh6/248?= =?utf-8?q?O8Bw8hoYAc8wZvd/eeGWHNbQJjWzRAUEHHhNGtLQP/z/IOEzgAOP6L9Np1k2d+/4H?= =?utf-8?q?EzZ+E6+AZ3DJHHqe/ighjfi6UmKJEdNrhD3aO2h9nU9gKHIQlEv9ICYleBQd8wxyd?= =?utf-8?q?fxuecf1uuxD91/9qOMtElCqM7ZxbdzfScb+dCZtX4mNGXgsxMO5UWezN3sA+LvZtj?= =?utf-8?q?aqBH8bLG+8FdOjIvk4V+oYmrNVEzHKPrV2C4Wmc4aZB9VErgrxJbVNSEj3FxIz/4U?= =?utf-8?q?+8ZMweqdN+bjUOBKvRqdQQF4knlpV1EdgXTmvWMML1bcwgo7DJ3PlC0ebTJSF+Znj?= =?utf-8?q?IrPKcyRYqf7y5VegyPfAawWGVpLXniWZ5TNPnorEEo2l2BV05YwFkzc0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(52116014)(376014)(366016)(7416014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?asobm2R2GQkOXsTAO1bU17KzURxs?= =?utf-8?q?vXvkLgnA+U5IiDsWozhBnW3IpjpPRAKpCP3g5Lg/Vb/oarL7PpFhsYK76YhllXD9F?= =?utf-8?q?+Js9wcpJCLvbvDIQsjqSq2Wt6SJjgvkcpaG2q2BUOgVIWRVFiFU6xsnXt1e5hPTjk?= =?utf-8?q?9hVce7W0tpBVJZzmZf1Lm+ZDpZNJcmKb+0gQvLAfTRXVDI2mXDoPsGQz2FmsD9RNC?= =?utf-8?q?IxzTgb59d50YLhS2NxC7m5QntNpvgc8X77Uu/VdZAicmY+PCjsKo5F+JRGjCCLSIS?= =?utf-8?q?FYGIWryZ9xKiZ9LON4b0dsJdJbYcgiacrYCpNOttseeJ4jtzDbEcbUkhRTewSxhKB?= =?utf-8?q?5PayIkEa8oYs92ZKmHXAI9KEzaphadkFECsybWnUeFHH2JuGS7y4Ry3nSsxvUrCyr?= =?utf-8?q?si6V9GEqOmLR0uqfDMGZix4rfdhRmyiAB/N6QZfM+m8lFqYT9e6ao58qrmsShTdeJ?= =?utf-8?q?REzGKZxQ/SuLDuEF4VPe0F4fhd2K8hsIMpgVJ45AYEjRbE5vPGLfbaNSVd5uJwxEJ?= =?utf-8?q?edIBAYruhLQzihw1h4H5BJR5sbY2HsctmCt+yfKJEaqvOOl4jiPqUWHmtfRHf/lVJ?= =?utf-8?q?kAqRSn0EhFGzkLaJx/WtQkGp5rKehBVZzpHqhjo0bWRwLtBreb3Qf5VcvJfaMZ0s+?= =?utf-8?q?/2dyy9pD317AHRJYtYUh/HmhcsWhIaEP7adPH4gYIrzvmKJlU4n47mudVPHXjGjli?= =?utf-8?q?UCh24qQWA584bQWHjNdYxtg06aaU9qhr6+2assxnPJj8Zt5yJ7ikOT1ua+gWP4PgH?= =?utf-8?q?vJlts6g6SSTceKsA4Lh2hvKw2x2tz9isr+fj2Ba50OwI1Jv5XDT8dju5CYC3+lzUB?= =?utf-8?q?TazBzAJN9D/AjU146lr4kG2XdBV+6eKkfvPmMIh+Wx8ygY8d2JlLudI0gJWL7dpPJ?= =?utf-8?q?qnwkvA01HRTY/ezd7ccp+8w4GHTfOypa3xWZIF/68+RYAC1zt6+wzqQvmQgGNXFyF?= =?utf-8?q?uvMy3vOOyjKEfVQDl5lms55mPm9PLkduZeeVrjumtwe0OsA9me8qZv1xA47ACBh+8?= =?utf-8?q?IKrko1k6EF/Dwl/KdgIuP962M6ELOuHF+Qx0YRXUfDXgEQugzhWZs5CdtAAq8RMD7?= =?utf-8?q?A0aps086RErXG+i8FbWewJS3EfsnTJs4zT50AzJVEd0yQ7A3m6qMJU/jbx/2e4r8B?= =?utf-8?q?drMZd+6SbHpYJZzYBBc/3/MJVWhs0MjvRAB9y6EubBSzPbCc95gVMOsd6qz0OLjrU?= =?utf-8?q?HxgBQZbjGvcUftrwbZwEftQ9wEVaws+72cp0YFaxrJzLVZkc8IDjTXIpCtQmSBoq3?= =?utf-8?q?yV2ih9QhSb7tlv6Pcn9e3u6mfsker2VOO1QE48/V/CjbkS2+sH0ufc0+AmVh9/BUn?= =?utf-8?q?tGAU+yBzaXIAvEjgFeYVXufYC16pIF+8Dlv5eaqcYKY1M0g/OlUJApwzotwEpMOrC?= =?utf-8?q?KKtgJffMb0KcWGYsG8v9Wxt5tv8HowwMk6ByjMkNOiLUBnXB3UBREwbl9FGo7Knti?= =?utf-8?q?eiW0oCiNSfc8igdb7TivKsaQkXkul7YiqWIDG3T91pgOIXJ6hdAV34p6zLfqiHiOm?= =?utf-8?q?yEidZYv3WziJ?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81e99a82-bff9-4492-ba7d-08dcea09dcbd X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2024 15:32:05.9771 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lFKsWBLy1iZ/9aUtR2af6dxuthCUaNhrthmyWa/L7QZlUiFUxP6lxL5iv2GgygtHcsW/d1LOBMPm4eKIm4cFTg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7360 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241011_083214_367882_F1EB9A43 X-CRM114-Status: GOOD ( 11.38 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Priyanka Singh Fix undefined behavior caused by left-shifting a negative value in the expression: cap_high ^ (1 << (bad_data_bit - 32)) The variable `bad_data_bit` ranges from 0 to 63. When `bad_data_bit` is less than 32, `bad_data_bit - 32` becomes negative, and left-shifting by a negative value in C is undefined behavior. Fix this by checking the range of `bad_data_bit` before performing the shift. Fixes: ea2eb9a8b620 ("EDAC, fsl-ddr: Separate FSL DDR driver from MPC85xx") Signed-off-by: Priyanka Singh Reviewed-by: Sherry Sun Signed-off-by: Li Yang Signed-off-by: Frank Li --- drivers/edac/fsl_ddr_edac.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/edac/fsl_ddr_edac.c b/drivers/edac/fsl_ddr_edac.c index 7a9fb1202f1a0..ccc13c2adfd6f 100644 --- a/drivers/edac/fsl_ddr_edac.c +++ b/drivers/edac/fsl_ddr_edac.c @@ -338,11 +338,18 @@ static void fsl_mc_check(struct mem_ctl_info *mci) fsl_mc_printk(mci, KERN_ERR, "Faulty ECC bit: %d\n", bad_ecc_bit); - fsl_mc_printk(mci, KERN_ERR, - "Expected Data / ECC:\t%#8.8x_%08x / %#2.2x\n", - cap_high ^ (1 << (bad_data_bit - 32)), - cap_low ^ (1 << bad_data_bit), - syndrome ^ (1 << bad_ecc_bit)); + if ((bad_data_bit > 0 && bad_data_bit < 32) && bad_ecc_bit > 0) { + fsl_mc_printk(mci, KERN_ERR, + "Expected Data / ECC:\t%#8.8x_%08x / %#2.2x\n", + cap_high, cap_low ^ (1 << bad_data_bit), + syndrome ^ (1 << bad_ecc_bit)); + } + if (bad_data_bit >= 32 && bad_ecc_bit > 0) { + fsl_mc_printk(mci, KERN_ERR, + "Expected Data / ECC:\t%#8.8x_%08x / %#2.2x\n", + cap_high ^ (1 << (bad_data_bit - 32)), + cap_low, syndrome ^ (1 << bad_ecc_bit)); + } } fsl_mc_printk(mci, KERN_ERR,