Re: [PATCH v2 7/9] ACPI, APEI, CPER: Enhance memory reporting capability

Mauro Carvalho Chehab
2013-10-17T10:24:27Z

Em Wed, 16 Oct 2013 10:56:04 -0400
"Chen, Gong" <gong.chen@linux.intel.com> escreveu:

> After H/W error happens under FFM enabled mode, lots of information
> are shown but some important parts like DIMM location missed. This
> patch is used to show these extra fileds.
>
> Original-author: Tony Luck <tony.luck@intel.com>
> Signed-off-by: Chen, Gong <gong.chen@linux.intel.com>
> Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>

Reviewed-by: Mauro Carvalho Chehab <m.chehab@samsung.com>

> ---
> drivers/acpi/apei/cper.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c
> index 946ef52..b1a8a55 100644
> --- a/drivers/acpi/apei/cper.c
> +++ b/drivers/acpi/apei/cper.c
> @@ -28,6 +28,7 @@
> #include <linux/module.h>
> #include <linux/time.h>
> #include <linux/cper.h>
> +#include <linux/dmi.h>
> #include <linux/acpi.h>
> #include <linux/pci.h>
> #include <linux/aer.h>
> @@ -210,6 +211,8 @@ static void cper_print_mem(const char *pfx, const struct cper_sec_mem_err *mem)
> printk("%s""card: %d\n", pfx, mem->card);
> if (mem->validation_bits & CPER_MEM_VALID_MODULE)
> printk("%s""module: %d\n", pfx, mem->module);
> + if (mem->validation_bits & CPER_MEM_VALID_RANK_NUMBER)
> + printk("%s""rank: %d\n", pfx, mem->rank);
> if (mem->validation_bits & CPER_MEM_VALID_BANK)
> printk("%s""bank: %d\n", pfx, mem->bank);
> if (mem->validation_bits & CPER_MEM_VALID_DEVICE)
> @@ -232,6 +235,15 @@ static void cper_print_mem(const char *pfx, const struct cper_sec_mem_err *mem)
> etype < ARRAY_SIZE(cper_mem_err_type_strs) ?
> cper_mem_err_type_strs[etype] : "unknown");
> }
> + if (mem->validation_bits & CPER_MEM_VALID_MODULE_HANDLE) {
> + const char *bank = NULL, *device = NULL;
> + dmi_memdev_name(mem->mem_dev_handle, &bank, &device);
> + if (bank != NULL && device != NULL)
> + printk("%s""DIMM location: %s %s", pfx, bank, device);
> + else
> + printk("%s""DIMM DMI handle: 0x%.4x",
> + pfx, mem->mem_dev_handle);
> + }
> }
>
> static const char *cper_pcie_port_type_strs[] = {

--

Cheers,
Mauro