summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Hunt <johunt@akamai.com>2012-09-21 16:45:49 +0200
committerBorislav Petkov <bp@alien8.de>2012-11-28 11:54:50 +0100
commit3c0622760aaa4731e2fd3a7472a96b59d2caecc4 (patch)
treeb2508be35c84f0501189969c995fdab433edcb4f
parentEDAC: Fix csrow size reported in sysfs (diff)
downloadlinux-3c0622760aaa4731e2fd3a7472a96b59d2caecc4.tar.xz
linux-3c0622760aaa4731e2fd3a7472a96b59d2caecc4.zip
EDAC: Fix mc size reported in sysfs
This is the complement to previous commit "EDAC: Fix csrow size reported in sysfs". This fixes the memory controller size reporting on csrow-based memory controllers. The csrow size is already combined for both channels. Without this patch memory size is reported doubled. Signed-off-by: Josh Hunt <johunt@akamai.com> Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
-rw-r--r--drivers/edac/edac_mc_sysfs.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
index bd46610979c7..a242dae1aeb0 100644
--- a/drivers/edac/edac_mc_sysfs.c
+++ b/drivers/edac/edac_mc_sysfs.c
@@ -781,10 +781,14 @@ static ssize_t mci_size_mb_show(struct device *dev,
for (csrow_idx = 0; csrow_idx < mci->nr_csrows; csrow_idx++) {
struct csrow_info *csrow = mci->csrows[csrow_idx];
- for (j = 0; j < csrow->nr_channels; j++) {
- struct dimm_info *dimm = csrow->channels[j]->dimm;
-
- total_pages += dimm->nr_pages;
+ if (csrow->mci->csbased) {
+ total_pages += csrow->nr_pages;
+ } else {
+ for (j = 0; j < csrow->nr_channels; j++) {
+ struct dimm_info *dimm = csrow->channels[j]->dimm;
+
+ total_pages += dimm->nr_pages;
+ }
}
}