This patch set is a rework of the ghes_edac and edac_mc driver. It addresses issues found during code review and while working with the code. The changes include:
* improve function interfaces and data structures to decrease complexity such as number of function arguments, unused data, etc. (#1, #2, #6, #10, #12, #13), * add helper functions and factor out code (#3, #8, #9, #14) * fix style issues found by checkpatch (#4) * improve code readability (#5, #7, #11) * use of standard kernel macros (#15) * code unification (#16, #17, #18) * documentation updates (#19) This series contains some patches that have been posted and reviewed earlier here: https://lore.kernel.org/patchwork/cover/1093488/ Review comments have been addressed and the following changes have been made to those patches: * rebased onto ras:edac-for-next (v5.4-rc1 based) * reworded patch descriptions * dropped hunk that only reorders code in "EDAC, ghes: Remove pvt->detail_location string" * updated description for edac_get_dimm_by_index() * updated description for edac_get_dimm() * small style changes in "EDAC: Replace EDAC_DIMM_PTR() macro with edac_get_dimm() function" * use unsigned type for dimm->idx to avoid need for negative range check * fixed mci_for_each_dimm() loop in i5100_init_csrows() * fixed off-by-one in mci_for_each_dimm() Robert Richter (19): EDAC: Replace EDAC_DIMM_PTR() macro with edac_get_dimm() function EDAC: Remove EDAC_DIMM_OFF() macro EDAC: Introduce mci_for_each_dimm() iterator EDAC, mc: Do not BUG_ON() in edac_mc_alloc() EDAC, mc: Reduce indentation level in edac_mc_handle_error() EDAC, mc: Remove per layer counters EDAC, mc: Rename iterator variable to idx EDAC, mc: Split edac_mc_alloc() into smaller functions EDAC, mc: Reorder functions edac_mc_alloc*() EDAC, mc: Rework edac_raw_mc_handle_error() to use struct dimm_info EDAC: Remove misleading comment in struct edac_raw_error_desc EDAC: Store error type in struct edac_raw_error_desc EDAC, mc: Determine mci pointer from the error descriptor EDAC, mc: Create new function edac_inc_csrow() EDAC, ghes: Use standard kernel macros for page calculations EDAC, ghes: Fix grain calculation EDAC, ghes: Remove intermediate buffer pvt->detail_location EDAC, ghes: Unify trace_mc_event() code with edac_mc driver EDAC, Documentation: Describe CPER module definition and DIMM ranks Documentation/admin-guide/ras.rst | 31 +- drivers/edac/edac_mc.c | 478 +++++++++++++++--------------- drivers/edac/edac_mc.h | 8 +- drivers/edac/edac_mc_sysfs.c | 65 ++-- drivers/edac/ghes_edac.c | 55 ++-- drivers/edac/i10nm_base.c | 3 +- drivers/edac/i3200_edac.c | 3 +- drivers/edac/i5000_edac.c | 5 +- drivers/edac/i5100_edac.c | 14 +- drivers/edac/i5400_edac.c | 3 +- drivers/edac/i7300_edac.c | 3 +- drivers/edac/i7core_edac.c | 3 +- drivers/edac/ie31200_edac.c | 7 +- drivers/edac/pnd2_edac.c | 4 +- drivers/edac/sb_edac.c | 2 +- drivers/edac/skx_base.c | 3 +- drivers/edac/ti_edac.c | 2 +- include/linux/edac.h | 153 +++++----- 18 files changed, 401 insertions(+), 441 deletions(-) -- 2.20.1