[PATCH 00/19] EDAC: Rework edac_mc and ghes drivers

From: Robert Richter
Date: Thu Oct 10 2019 - 16:25:19 EST


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