aboutsummaryrefslogtreecommitdiffstats
diff options
authorQiuxu Zhuo <qiuxu.zhuo@intel.com>2025-04-24 16:14:54 +0800
committerTony Luck <tony.luck@intel.com>2025-04-24 08:42:25 -0700
commit2b2408aca90b86c1ef51c19d834e5f6db0a1ff30 (patch)
tree9db57f634d5b25c7ef9fc8231ff4144452a8dd00
parent180f091224a002f8bd1629307c34619a5626841e (diff)
downloadras-edac-drivers.tar.gz
EDAC/i10nm: Fix the bitwise operation between variables of different sizesedac-drivers
The tool of Smatch static checker reported the following warning: drivers/edac/i10nm_base.c:364 show_retry_rd_err_log() warn: should bitwise negate be 'ullong'? This warning was due to the bitwise NOT/AND operations between 'status_mask' (a u32 type) and 'log' (a u64 type), which resulted in the high 32 bits of 'log' were cleared. This was a false positive warning, as only the low 32 bits of 'log' was written to the first RRL memory controller register (a u32 type). To improve code sanity, fix this warning by changing 'status_mask' to a u64 type, ensuring it matches the size of 'log' for bitwise operations. Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Closes: https://lore.kernel.org/all/aAih0KmEVq7ch6v2@stanley.mountain/ Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/r/20250424081454.2952632-1-qiuxu.zhuo@intel.com
-rw-r--r--drivers/edac/i10nm_base.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/edac/i10nm_base.c b/drivers/edac/i10nm_base.c
index 8863f1fb4caf7d..a3fca2567752e4 100644
--- a/drivers/edac/i10nm_base.c
+++ b/drivers/edac/i10nm_base.c
@@ -327,10 +327,10 @@ static void show_retry_rd_err_log(struct decoded_addr *res, char *msg,
{
int i, j, n, ch = res->channel, pch = res->cs & 1;
struct skx_imc *imc = &res->dev->imc[res->imc];
- u32 offset, status_mask;
+ u64 log, corr, status_mask;
struct reg_rrl *rrl;
- u64 log, corr;
bool scrub;
+ u32 offset;
u8 width;
if (!imc->mbase)