Skip to content

Commit 1fe774a

Browse files
dthompsobp3tk0v
authored andcommitted
EDAC/bluefield: Fix potential integer overflow
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 <[email protected]> Signed-off-by: Borislav Petkov (AMD) <[email protected]> Reviewed-by: Shravan Kumar Ramani <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 0be9f1a commit 1fe774a

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)