[v2,00/20] EDAC: Rework edac_mc and ghes drivers
mbox series

Message ID 20191106093239.25517-1-rrichter@marvell.com
Headers show
Series
  • EDAC: Rework edac_mc and ghes drivers
Related show

Message

Robert Richter Nov. 6, 2019, 9:32 a.m. UTC
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, #14, #17, #18, #19),

 * add helper functions and factor out code (#3, #15, #16, #20)

 * fix style issues found by checkpatch (#4)

 * improve code readability (#5, #6, #7, #8)

 * use of standard kernel macros (#9)

 * code unification (#10, #11, #12)

 * documentation updates (#13)

v2:
 * rebased onto edac-for-next and ghes locking fix
 * moved adding idx to struct dimm_info to patch "EDAC: Remove
   EDAC_DIMM_OFF() macro"
 * added patch: "EDAC, mc: Remove needless zero string termination"
 * added Mauro's Reviewed-by: tags
 * moved patches to the end:
   EDAC, mc: Remove per layer counters
   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: 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()


Robert Richter (20):
  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: Remove needless zero string termination
  EDAC, mc: Reduce indentation level in edac_mc_handle_error()
  EDAC, mc: Rename iterator variable to idx
  EDAC: Remove misleading comment in struct edac_raw_error_desc
  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
  EDAC, mc: Remove per layer counters
  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: 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()

 Documentation/admin-guide/ras.rst |  31 +-
 drivers/edac/edac_mc.c            | 477 +++++++++++++++---------------
 drivers/edac/edac_mc.h            |   8 +-
 drivers/edac/edac_mc_sysfs.c      |  65 ++--
 drivers/edac/ghes_edac.c          |  56 ++--
 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(-)

Comments

Borislav Petkov Nov. 10, 2019, 2:51 p.m. UTC | #1
On Wed, Nov 06, 2019 at 09:32:58AM +0000, Robert Richter wrote:
> Robert Richter (20):
>   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: Remove needless zero string termination
>   EDAC, mc: Reduce indentation level in edac_mc_handle_error()
>   EDAC, mc: Rename iterator variable to idx
>   EDAC: Remove misleading comment in struct edac_raw_error_desc
>   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

Queued up to here.

Thx.
Robert Richter Nov. 11, 2019, 3:49 p.m. UTC | #2
On 10.11.19 15:51:05, Borislav Petkov wrote:
> On Wed, Nov 06, 2019 at 09:32:58AM +0000, Robert Richter wrote:
> > Robert Richter (20):
> >   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: Remove needless zero string termination
> >   EDAC, mc: Reduce indentation level in edac_mc_handle_error()
> >   EDAC, mc: Rename iterator variable to idx
> >   EDAC: Remove misleading comment in struct edac_raw_error_desc
> >   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
> 
> Queued up to here.

Thanks Boris. I am preparing a v3 with the remaining patches rebased
onto edac-for-next.

Thanks,

-Robert