diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-04-30 09:24:43 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-06-11 12:23:49 -0400 |
commit | 6e84d359b2bea5ce659b3c3e5d3003fb11bd91d5 (patch) | |
tree | 80bbfc5e78b21ab82e1d89a52d3baecd09943623 /drivers/edac/edac_mc_sysfs.c | |
parent | 956b9ba156dbfdb9cede2b2927ddf8be2233b3a7 (diff) |
edac_mc: Cleanup per-dimm_info debug messages
The edac_mc_alloc() routine allocates one dimm_info device for all
possible memories, including the non-filled ones. The debug messages
there are somewhat confusing. So, cleans them, by moving the code
that prints the memory location to edac_mc, and using it on both
edac_mc_sysfs and edac_mc.
Also, only dumps information when DIMM/ranks are actually
filled.
After this patch, a dimm-based memory controller will print the debug
info as:
[ 1011.380027] EDAC DEBUG: edac_mc_dump_csrow: csrow->csrow_idx = 0
[ 1011.380029] EDAC DEBUG: edac_mc_dump_csrow: csrow = ffff8801169be000
[ 1011.380031] EDAC DEBUG: edac_mc_dump_csrow: csrow->first_page = 0x0
[ 1011.380032] EDAC DEBUG: edac_mc_dump_csrow: csrow->last_page = 0x0
[ 1011.380034] EDAC DEBUG: edac_mc_dump_csrow: csrow->page_mask = 0x0
[ 1011.380035] EDAC DEBUG: edac_mc_dump_csrow: csrow->nr_channels = 3
[ 1011.380037] EDAC DEBUG: edac_mc_dump_csrow: csrow->channels = ffff8801149c2840
[ 1011.380039] EDAC DEBUG: edac_mc_dump_csrow: csrow->mci = ffff880117426000
[ 1011.380041] EDAC DEBUG: edac_mc_dump_channel: channel->chan_idx = 0
[ 1011.380042] EDAC DEBUG: edac_mc_dump_channel: channel = ffff8801149c2860
[ 1011.380044] EDAC DEBUG: edac_mc_dump_channel: channel->csrow = ffff8801169be000
[ 1011.380046] EDAC DEBUG: edac_mc_dump_channel: channel->dimm = ffff88010fe90400
...
[ 1011.380095] EDAC DEBUG: edac_mc_dump_dimm: dimm0: channel 0 slot 0 mapped as virtual row 0, chan 0
[ 1011.380097] EDAC DEBUG: edac_mc_dump_dimm: dimm = ffff88010fe90400
[ 1011.380099] EDAC DEBUG: edac_mc_dump_dimm: dimm->label = 'CPU#0Channel#0_DIMM#0'
[ 1011.380101] EDAC DEBUG: edac_mc_dump_dimm: dimm->nr_pages = 0x40000
[ 1011.380103] EDAC DEBUG: edac_mc_dump_dimm: dimm->grain = 8
[ 1011.380104] EDAC DEBUG: edac_mc_dump_dimm: dimm->nr_pages = 0x40000
...
(a rank-based memory controller would print, instead of "dimm?", "rank?"
on the above debug info)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/edac/edac_mc_sysfs.c')
-rw-r--r-- | drivers/edac/edac_mc_sysfs.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c index eace646b57f0..7079a428c8ea 100644 --- a/drivers/edac/edac_mc_sysfs.c +++ b/drivers/edac/edac_mc_sysfs.c | |||
@@ -485,17 +485,8 @@ static ssize_t dimmdev_location_show(struct device *dev, | |||
485 | struct device_attribute *mattr, char *data) | 485 | struct device_attribute *mattr, char *data) |
486 | { | 486 | { |
487 | struct dimm_info *dimm = to_dimm(dev); | 487 | struct dimm_info *dimm = to_dimm(dev); |
488 | struct mem_ctl_info *mci = dimm->mci; | ||
489 | int i; | ||
490 | char *p = data; | ||
491 | |||
492 | for (i = 0; i < mci->n_layers; i++) { | ||
493 | p += sprintf(p, "%s %d ", | ||
494 | edac_layer_name[mci->layers[i].type], | ||
495 | dimm->location[i]); | ||
496 | } | ||
497 | 488 | ||
498 | return p - data; | 489 | return edac_dimm_info_location(dimm, data, PAGE_SIZE); |
499 | } | 490 | } |
500 | 491 | ||
501 | static ssize_t dimmdev_label_show(struct device *dev, | 492 | static ssize_t dimmdev_label_show(struct device *dev, |