Reading those sysfs entries gives:

  [root@localhost /]# cat /sys/devices/system/edac/mc/mc0/max_location
  memory 3 [root@localhost /]# cat 
/sys/devices/system/edac/mc/mc0/dimm0/dimm_location
  memory 0 [root@localhost /]#

Add newlines after the value it prints for better readability.

Signed-off-by: Xiongfeng Wang <[email protected]>
---
 drivers/edac/edac_mc_sysfs.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
index 4e6aca5..bf0e075 100644
--- a/drivers/edac/edac_mc_sysfs.c
+++ b/drivers/edac/edac_mc_sysfs.c
@@ -474,8 +474,12 @@ static ssize_t dimmdev_location_show(struct device *dev,
                                     struct device_attribute *mattr, char *data)
 {
        struct dimm_info *dimm = to_dimm(dev);
+       ssize_t count;
 
-       return edac_dimm_info_location(dimm, data, PAGE_SIZE);
+       count = edac_dimm_info_location(dimm, data, PAGE_SIZE);
+       count += snprintf(data + count, PAGE_SIZE - count, "\n");
+
+       return count;
 }
 
 static ssize_t dimmdev_label_show(struct device *dev,
@@ -813,15 +817,21 @@ static ssize_t mci_max_location_show(struct device *dev,
                                     char *data)
 {
        struct mem_ctl_info *mci = to_mci(dev);
-       int i;
+       int i, n;
        char *p = data;
+       unsigned int len = PAGE_SIZE;
 
        for (i = 0; i < mci->n_layers; i++) {
-               p += sprintf(p, "%s %d ",
+               n = snprintf(p, len, "%s %d ",
                             edac_layer_name[mci->layers[i].type],
                             mci->layers[i].size - 1);
+               p += n;
+               len -= n;
+               if (!len)
+                       goto out;
        }
-
+       p += snprintf(p, len, "\n");
+out:
        return p - data;
 }
 
-- 
1.7.12.4

Reply via email to