Skip to content

Commit 6bc9570

Browse files
dthompsoaloktiwa
authored andcommitted
EDAC/bluefield: Fix potential integer overflow
[ Upstream commit 1fe774a ] The 64-bit argument for the "get DIMM info" SMC call consists of mem_ctrl_idx left-shifted 16 bits and OR-ed with DIMM index. With mem_ctrl_idx defined as 32-bits wide the left-shift operation truncates the upper 16 bits of information during the calculation of the SMC argument. The mem_ctrl_idx stack variable must be defined as 64-bits wide to prevent any potential integer overflow, i.e. loss of data from upper 16 bits. Fixes: 82413e5 ("EDAC, mellanox: Add ECC support for BlueField DDR4") Signed-off-by: David Thompson <davthompson@nvidia.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Shravan Kumar Ramani <shravankr@nvidia.com> Link: https://lore.kernel.org/r/20240930151056.10158-1-davthompson@nvidia.com Signed-off-by: Sasha Levin <sashal@kernel.org> (cherry picked from commit 8cc31cfa36ff37aff399b72faa2ded58110112ae) Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
1 parent 645b248 commit 6bc9570

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/edac/bluefield_edac.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ static void bluefield_edac_check(struct mem_ctl_info *mci)
180180
static void bluefield_edac_init_dimms(struct mem_ctl_info *mci)
181181
{
182182
struct bluefield_edac_priv *priv = mci->pvt_info;
183-
int mem_ctrl_idx = mci->mc_idx;
183+
u64 mem_ctrl_idx = mci->mc_idx;
184184
struct dimm_info *dimm;
185185
u64 smc_info, smc_arg;
186186
int is_empty = 1, i;

0 commit comments

Comments
 (0)