CXL accelerators are unfortunately not immune from failure. This patch set enables them to particpate in the Extended Error Handling process.
This series starts with a number of preparatory patches: - Patch 1 makes sure we don't touch the hardware when it has failed. - Patches 2-4 make the 'unplug' functions idempotent, so that if we get part way through recovery and then fail, being completely unplugged as part of removal doesn't cause us to oops out. - Patches 5 and 6 refactor init and teardown paths for the adapter and AFUs, so that they can be configured and deconfigured separately from their allocation and release. - Patch 7 stops cxl_reset from breaking EEH. Patches 8 and 9 are parts of EEH. - Firstly we have a kernel flag that allows us to confidently assert the hardware will not change (be reflashed) when it it reset. - We then have the EEH support itself. Finally, we add a CONFIG_CXL_EEH symbol that allows drivers to depend on CXL EEH, or to be easily backportable if EEH is optional. Changes from v1: - More comprehensive link down checks, including vPHB. - Rebased to apply cleanly to 4.2-rc4. - cxl reset changes. - CONFIG_CXL_EEH symbol addition. - add better vPHB support to EEH. Daniel Axtens (10): cxl: Drop commands if the PCI channel is not in normal state cxl: Allocate and release the SPA with the AFU cxl: Make IRQ release idempotent cxl: Clean up adapter MMIO unmap path. cxl: Refactor adaptor init/teardown cxl: Refactor AFU init/teardown cxl: Don't remove AFUs/vPHBs in cxl_reset cxl: Allow the kernel to trust that an image won't change on PERST. cxl: EEH support cxl: Add CONFIG_CXL_EEH symbol Documentation/ABI/testing/sysfs-class-cxl | 10 + drivers/misc/cxl/Kconfig | 6 + drivers/misc/cxl/api.c | 9 + drivers/misc/cxl/context.c | 6 +- drivers/misc/cxl/cxl.h | 41 ++- drivers/misc/cxl/file.c | 19 ++ drivers/misc/cxl/irq.c | 9 + drivers/misc/cxl/native.c | 99 +++++- drivers/misc/cxl/pci.c | 521 ++++++++++++++++++++++++------ drivers/misc/cxl/sysfs.c | 30 ++ drivers/misc/cxl/vphb.c | 34 ++ include/misc/cxl.h | 12 + 12 files changed, 673 insertions(+), 123 deletions(-) -- 2.1.4 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev