summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2013-02-15 07:21:08 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-02-21 11:06:37 -0300
commitc66b5a79a9348ccd6d1cd81416027d0e12da965d (patch)
treec6a25cbd329ebb6cd7edadb9bcd5f94796d94e97
parent4ab19b06acffd2278cd37995927c85a9acfd00db (diff)
downloadlinux-c66b5a79a9348ccd6d1cd81416027d0e12da965d.tar.gz
linux-c66b5a79a9348ccd6d1cd81416027d0e12da965d.tar.bz2
linux-c66b5a79a9348ccd6d1cd81416027d0e12da965d.zip
edac: add a new memory layer type
There are some cases where the memory controller layout is completely hidden. This is the case of firmware-driven error code, like the one provided by GHES. Add a new layer to be used on such memory error report mechanisms. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/edac/edac_mc.c1
-rw-r--r--include/linux/edac.h4
2 files changed, 5 insertions, 0 deletions
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index fb219bc5cb2c..78d8c7d6e76a 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -900,6 +900,7 @@ const char *edac_layer_name[] = {
[EDAC_MC_LAYER_CHANNEL] = "channel",
[EDAC_MC_LAYER_SLOT] = "slot",
[EDAC_MC_LAYER_CHIP_SELECT] = "csrow",
+ [EDAC_MC_LAYER_ALL_MEM] = "memory",
};
EXPORT_SYMBOL_GPL(edac_layer_name);
diff --git a/include/linux/edac.h b/include/linux/edac.h
index 4784213c819d..1b7744c219b8 100644
--- a/include/linux/edac.h
+++ b/include/linux/edac.h
@@ -375,6 +375,9 @@ enum scrub_type {
* @EDAC_MC_LAYER_CHANNEL: memory layer is named "channel"
* @EDAC_MC_LAYER_SLOT: memory layer is named "slot"
* @EDAC_MC_LAYER_CHIP_SELECT: memory layer is named "chip select"
+ * @EDAC_MC_LAYER_ALL_MEM: memory layout is unknown. All memory is mapped
+ * as a single memory area. This is used when
+ * retrieving errors from a firmware driven driver.
*
* This enum is used by the drivers to tell edac_mc_sysfs what name should
* be used when describing a memory stick location.
@@ -384,6 +387,7 @@ enum edac_mc_layer_type {
EDAC_MC_LAYER_CHANNEL,
EDAC_MC_LAYER_SLOT,
EDAC_MC_LAYER_CHIP_SELECT,
+ EDAC_MC_LAYER_ALL_MEM,
};
/**