Skip to content

EEH refactoring 2

Sam Bobroff linuxppc-dev 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest13 patches 4 repliesIn review
  2. v113 patches 19 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13powerpc/eeh: Add eeh_max_freezes to initial EEH log linearch/powerpc/kernel/eeh_driver.c+3 -41 reply
2/13powerpc/eeh: Add final message for successful recoveryarch/powerpc/kernel/eeh_driver.c+1 -00 replies
3/13powerpc/eeh: Fix use-after-release of EEH driverarch/powerpc/kernel/eeh_driver.c+16 -120 replies
4/13powerpc/eeh: Remove unused eeh_pcid_name()arch/powerpc/kernel/eeh_driver.c+0 -140 replies
5/13powerpc/eeh: Strengthen types of eeh traversal functionsarch/powerpc/include/asm/eeh.h arch/powerpc/kernel/eeh.c arch/powerpc/kernel/eeh_driver.c +1 more+26 -430 replies
6/13powerpc/eeh: Add message when PE processing at parentarch/powerpc/kernel/eeh.c+5 -10 replies
7/13powerpc/eeh: Clean up pci_ers_result handlingarch/powerpc/kernel/eeh_driver.c+26 -103 replies
8/13powerpc/eeh: Introduce eeh_for_each_pe()arch/powerpc/include/asm/eeh.h arch/powerpc/kernel/eeh_pe.c+7 -40 replies
9/13powerpc/eeh: Introduce eeh_edev_actionable()arch/powerpc/kernel/eeh_driver.c+16 -140 replies
10/13powerpc/eeh: Introduce eeh_set_channel_state()arch/powerpc/kernel/eeh_driver.c+16 -30 replies
11/13powerpc/eeh: Introduce eeh_set_irq_state()arch/powerpc/kernel/eeh_driver.c+34 -180 replies
12/13powerpc/eeh: Cleaner handling of EEH_DEV_NO_HANDLERarch/powerpc/kernel/eeh_driver.c+5 -10 replies
13/13powerpc/eeh: Refactor report functionsarch/powerpc/kernel/eeh_driver.c+159 -1510 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 00/13] EEH refactoring 2

Hello everyone,

Here is a second, somewhat deeper, set of cleanups for the EEH code (mostly eeh_drver.c).

These changes are not intended to significantly alter the actual processing, but rather to improve the readability and maintainability of the code. They are subjective by nature so I would appreciate comments and suggestions.

The earlier changes are mostly to support the last patch, where we're finally able to use a common infrastructure for the reporting functions (basically wrappers around the driver's handlers). This allows removal of a fair bit of code, and the easy addition of some useful messaging which should make future maintenance easier (as an example, a recent fix in this area "powerpc/eeh: Fix race with driver un/bind" would have required adding two lines rather than 42+/26-).

Cheers,
Sam.

Patch set changelog follows:

====== v1 -> v2: ======

Patch 1/13: powerpc/eeh: Add eeh_max_freezes to initial EEH log line

Patch 2/13: powerpc/eeh: Add final message for successful recovery

Patch 3/13: powerpc/eeh: Fix use-after-release of EEH driver

Patch 4/13: powerpc/eeh: Remove unused eeh_pcid_name()

Patch 5/13: powerpc/eeh: Strengthen types of eeh traversal functions

Patch 6/13: powerpc/eeh: Add message when PE processing at parent

Patch 7/13: powerpc/eeh: Clean up pci_ers_result handling
* Added the value, and missing newline, to some WARN()s.
* Improved name of merge_result() to pci_ers_merge_result().
* Adjusted the result priorities so that unknown doesn't overlap with _NONE.

Patch 8/13: powerpc/eeh: Introduce eeh_for_each_pe()

Patch 9/13: powerpc/eeh: Introduce eeh_edev_actionable()

Patch 10/13: powerpc/eeh: Introduce eeh_set_channel_state()

Patch 11/13: powerpc/eeh: Introduce eeh_set_irq_state()
* Reorganised eeh_set_irq_state() to reduce nesting depth.

Patch 12/13: powerpc/eeh: Cleaner handling of EEH_DEV_NO_HANDLER

Patch 13/13: powerpc/eeh: Refactor report functions
* Better name for eeh_infoline() and implement using a function.
* Move the core of eeh_pe_report() into a new function to improve readability.
* pci_ers_result_name(): match parameter name to eeh_result_priority(), correct and improve warning message.

====== v1: ======

Patch 1/13: powerpc/eeh: Add eeh_max_freezes to initial EEH log line Patch 2/13: powerpc/eeh: Add final message for successful recovery Patch 3/13: powerpc/eeh: Fix use-after-release of EEH driver Patch 4/13: powerpc/eeh: Remove unused eeh_pcid_name() Patch 5/13: powerpc/eeh: Strengthen types of eeh traversal functions Patch 6/13: powerpc/eeh: Add message when PE processing at parent Patch 7/13: powerpc/eeh: Clean up pci_ers_result handling Patch 8/13: powerpc/eeh: Introduce eeh_for_each_pe() Patch 9/13: powerpc/eeh: Introduce eeh_edev_actionable() Patch 10/13: powerpc/eeh: Introduce eeh_set_channel_state() Patch 11/13: powerpc/eeh: Introduce eeh_set_irq_state() Patch 12/13: powerpc/eeh: Cleaner handling of EEH_DEV_NO_HANDLER Patch 13/13: powerpc/eeh: Refactor report functions

Sam Bobroff (13):
powerpc/eeh: Add eeh_max_freezes to initial EEH log line powerpc/eeh: Add final message for successful recovery powerpc/eeh: Fix use-after-release of EEH driver powerpc/eeh: Remove unused eeh_pcid_name() powerpc/eeh: Strengthen types of eeh traversal functions powerpc/eeh: Add message when PE processing at parent powerpc/eeh: Clean up pci_ers_result handling powerpc/eeh: Introduce eeh_for_each_pe() powerpc/eeh: Introduce eeh_edev_actionable() powerpc/eeh: Introduce eeh_set_channel_state() powerpc/eeh: Introduce eeh_set_irq_state() powerpc/eeh: Cleaner handling of EEH_DEV_NO_HANDLER powerpc/eeh: Refactor report functions

 arch/powerpc/include/asm/eeh.h   |  11 +-
 arch/powerpc/kernel/eeh.c        |  19 +-
 arch/powerpc/kernel/eeh_driver.c | 493 +++++++++++++++++++++------------------
 arch/powerpc/kernel/eeh_pe.c     |  26 +--
 4 files changed, 294 insertions(+), 255 deletions(-)
Signature · 1 line
2.16.1.74.g9b0b1f47b