Skip to content

Commit ada1b04

Browse files
committed
Merge tag 'edac_updates_for_v6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras
Pull EDAC updates from Borislav Petkov: - ie31200: Add support for Raptor Lake-S and Alder Lake-S compute dies - Rework how RRL registers per channel tracking is done in order to support newer hardware with different RRL configurations and refactor that code. Add support for Granite Rapids server - i10nm: explicitly set RRL modes to fix any wrong BIOS programming - Properly save and restore Retry Read error Log channel configuration info on Intel drivers - igen6: Handle correctly the case of fused off memory controllers on Arizona Beach and Amston Lake SoCs before adding support for them - the usual set of fixes and cleanups * tag 'edac_updates_for_v6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: EDAC/bluefield: Don't use bluefield_edac_readl() result on error EDAC/i10nm: Fix the bitwise operation between variables of different sizes EDAC/ie31200: Add two Intel SoCs for EDAC support EDAC/{skx_common,i10nm}: Add RRL support for Intel Granite Rapids server EDAC/{skx_common,i10nm}: Refactor show_retry_rd_err_log() EDAC/{skx_common,i10nm}: Refactor enable_retry_rd_err_log() EDAC/{skx_common,i10nm}: Structure the per-channel RRL registers EDAC/i10nm: Explicitly set the modes of the RRL register sets EDAC/{skx_common,i10nm}: Fix the loss of saved RRL for HBM pseudo channel 0 EDAC/skx_common: Fix general protection fault EDAC/igen6: Add Intel Amston Lake SoCs support EDAC/igen6: Add Intel Arizona Beach SoCs support EDAC/igen6: Skip absent memory controllers
2 parents 664a231 + ea3b0b7 commit ada1b04

File tree

6 files changed

+422
-231
lines changed

6 files changed

+422
-231
lines changed

drivers/edac/bluefield_edac.c

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,10 @@ static void bluefield_gather_report_ecc(struct mem_ctl_info *mci,
199199
* error without the detailed information.
200200
*/
201201
err = bluefield_edac_readl(priv, MLXBF_SYNDROM, &dram_syndrom);
202-
if (err)
202+
if (err) {
203203
dev_err(priv->dev, "DRAM syndrom read failed.\n");
204+
return;
205+
}
204206

205207
serr = FIELD_GET(MLXBF_SYNDROM__SERR, dram_syndrom);
206208
derr = FIELD_GET(MLXBF_SYNDROM__DERR, dram_syndrom);
@@ -213,20 +215,26 @@ static void bluefield_gather_report_ecc(struct mem_ctl_info *mci,
213215
}
214216

215217
err = bluefield_edac_readl(priv, MLXBF_ADD_INFO, &dram_additional_info);
216-
if (err)
218+
if (err) {
217219
dev_err(priv->dev, "DRAM additional info read failed.\n");
220+
return;
221+
}
218222

219223
err_prank = FIELD_GET(MLXBF_ADD_INFO__ERR_PRANK, dram_additional_info);
220224

221225
ecc_dimm = (err_prank >= 2 && priv->dimm_ranks[0] <= 2) ? 1 : 0;
222226

223227
err = bluefield_edac_readl(priv, MLXBF_ERR_ADDR_0, &edea0);
224-
if (err)
228+
if (err) {
225229
dev_err(priv->dev, "Error addr 0 read failed.\n");
230+
return;
231+
}
226232

227233
err = bluefield_edac_readl(priv, MLXBF_ERR_ADDR_1, &edea1);
228-
if (err)
234+
if (err) {
229235
dev_err(priv->dev, "Error addr 1 read failed.\n");
236+
return;
237+
}
230238

231239
ecc_dimm_addr = ((u64)edea1 << 32) | edea0;
232240

@@ -250,8 +258,10 @@ static void bluefield_edac_check(struct mem_ctl_info *mci)
250258
return;
251259

252260
err = bluefield_edac_readl(priv, MLXBF_ECC_CNT, &ecc_count);
253-
if (err)
261+
if (err) {
254262
dev_err(priv->dev, "ECC count read failed.\n");
263+
return;
264+
}
255265

256266
single_error_count = FIELD_GET(MLXBF_ECC_CNT__SERR_CNT, ecc_count);
257267
double_error_count = FIELD_GET(MLXBF_ECC_CNT__DERR_CNT, ecc_count);

0 commit comments

Comments
 (0)