• Toshi Kani's avatar
    EDAC: Fix sysfs dimm_label show operation · 1ea62c59
    Toshi Kani authored
    After
    
      7d375bff ("sb_edac: Fix support for systems with two home agents per socket")
    
    sysfs "dimm_label" and "chX_dimm_label" show their label string without a
    newline "\n" at the end.
    
      [root@orange ~]# cat /sys/bus/mc0/devices/dimm0/dimm_label
      CPU_SrcID#0_Ha#0_Chan#0_DIMM#0[root@orange ~]#
    
      [root@orange ~]# cat /sys/devices/system/edac/mc/mc0/csrow0/ch0_dimm_label
      CPU_SrcID#0_Ha#0_Chan#0_DIMM#0[root@orange ~]#
    
    The label strings now have 31 characters, which are the same as
    EDAC_MC_LABEL_LEN. Since the snprintf()s in channel_dimm_label_show()
    and dimmdev_label_show() limit the whole length by EDAC_MC_LABEL_LEN,
    the newline in the format "%s\n" is ignored.
    
      [root@orange ~]# od -bc /sys/bus/mc0/devices/dimm0/dimm_label
      0000000 103 120 125 137 123 162 143 111 104 043 060 137 110 141 043 060
                C   P   U   _   S   r   c   I   D   #   0   _   H   a   #   0
      0000020 137 103 150 141 156 043 060 137 104 111 115 115 043 060 000
                _   C   h   a   n   #   0   _   D   I   M   M   #   0  \0
      0000037
    
    Fix it by using 'sizeof(dimm->label) + 1' as the whole length in the
    snprintf()s in channel_dimm_label_show() and dimmdev_label_show().
    Reported-by: default avatarRobert Elliott <elliott@hpe.com>
    Signed-off-by: default avatarToshi Kani <toshi.kani@hpe.com>
    Acked-by: default avatarTony Luck <tony.luck@intel.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Link: http://lkml.kernel.org/r/1442933883-21587-2-git-send-email-toshi.kani@hpe.comSigned-off-by: default avatarBorislav Petkov <bp@suse.de>
    1ea62c59
edac_mc_sysfs.c 26.2 KB