ghes_edac_report_mem_error() in ghes_edac.c is Long Method and have Duplicated Code with cper_mem_err_location(), cper_dimm_err_location(), and cper_mem_err_type_str() in drivers/firmware/efi/cper.c. In addition, the cper_print_mem() in drivers/firmware/efi/cper.c only reports the error status and misses its description. This patch set is to refactor ghes_edac_report_mem_error with: - Patch 01 is to introduces cper_*(), into ghes_edac_report_mem_error(), this can avoid bunch of duplicate code lines; - Patch 02 is to wrap up error status decoding logics and reuse it in cper_print_mem(). Shuai Xue (2): ghes_edac: refactor memory error location processing ghes_edac: refactor error status fields decoding drivers/edac/ghes_edac.c | 197 +++++++----------------------------- drivers/firmware/efi/cper.c | 49 ++++++++- include/linux/cper.h | 3 + 3 files changed, 85 insertions(+), 164 deletions(-) -- 2.20.1.12.g72788fdb