{
        struct csrow_info *csrow = to_csrow(dev);
 
-       return sprintf(data, "%u\n", csrow->ue_count);
+       return sysfs_emit(data, "%u\n", csrow->ue_count);
 }
 
 static ssize_t csrow_ce_count_show(struct device *dev,
 {
        struct csrow_info *csrow = to_csrow(dev);
 
-       return sprintf(data, "%u\n", csrow->ce_count);
+       return sysfs_emit(data, "%u\n", csrow->ce_count);
 }
 
 static ssize_t csrow_size_show(struct device *dev,
 
        for (i = 0; i < csrow->nr_channels; i++)
                nr_pages += csrow->channels[i]->dimm->nr_pages;
-       return sprintf(data, "%u\n", PAGES_TO_MiB(nr_pages));
+       return sysfs_emit(data, "%u\n", PAGES_TO_MiB(nr_pages));
 }
 
 static ssize_t csrow_mem_type_show(struct device *dev,
 {
        struct csrow_info *csrow = to_csrow(dev);
 
-       return sprintf(data, "%s\n", edac_mem_types[csrow->channels[0]->dimm->mtype]);
+       return sysfs_emit(data, "%s\n", edac_mem_types[csrow->channels[0]->dimm->mtype]);
 }
 
 static ssize_t csrow_dev_type_show(struct device *dev,
 {
        struct csrow_info *csrow = to_csrow(dev);
 
-       return sprintf(data, "%s\n", dev_types[csrow->channels[0]->dimm->dtype]);
+       return sysfs_emit(data, "%s\n", dev_types[csrow->channels[0]->dimm->dtype]);
 }
 
 static ssize_t csrow_edac_mode_show(struct device *dev,
 {
        struct csrow_info *csrow = to_csrow(dev);
 
-       return sprintf(data, "%s\n", edac_caps[csrow->channels[0]->dimm->edac_mode]);
+       return sysfs_emit(data, "%s\n", edac_caps[csrow->channels[0]->dimm->edac_mode]);
 }
 
 /* show/store functions for DIMM Label attributes */
        if (!rank->dimm->label[0])
                return 0;
 
-       return snprintf(data, sizeof(rank->dimm->label) + 1, "%s\n",
-                       rank->dimm->label);
+       return sysfs_emit(data, "%s\n", rank->dimm->label);
 }
 
 static ssize_t channel_dimm_label_store(struct device *dev,
        unsigned int chan = to_channel(mattr);
        struct rank_info *rank = csrow->channels[chan];
 
-       return sprintf(data, "%u\n", rank->ce_count);
+       return sysfs_emit(data, "%u\n", rank->ce_count);
 }
 
 /* cwrow<id>/attribute files */
        if (!dimm->label[0])
                return 0;
 
-       return snprintf(data, sizeof(dimm->label) + 1, "%s\n", dimm->label);
+       return sysfs_emit(data, "%s\n", dimm->label);
 }
 
 static ssize_t dimmdev_label_store(struct device *dev,
 {
        struct dimm_info *dimm = to_dimm(dev);
 
-       return sprintf(data, "%u\n", PAGES_TO_MiB(dimm->nr_pages));
+       return sysfs_emit(data, "%u\n", PAGES_TO_MiB(dimm->nr_pages));
 }
 
 static ssize_t dimmdev_mem_type_show(struct device *dev,
 {
        struct dimm_info *dimm = to_dimm(dev);
 
-       return sprintf(data, "%s\n", edac_mem_types[dimm->mtype]);
+       return sysfs_emit(data, "%s\n", edac_mem_types[dimm->mtype]);
 }
 
 static ssize_t dimmdev_dev_type_show(struct device *dev,
 {
        struct dimm_info *dimm = to_dimm(dev);
 
-       return sprintf(data, "%s\n", dev_types[dimm->dtype]);
+       return sysfs_emit(data, "%s\n", dev_types[dimm->dtype]);
 }
 
 static ssize_t dimmdev_edac_mode_show(struct device *dev,
 {
        struct dimm_info *dimm = to_dimm(dev);
 
-       return sprintf(data, "%s\n", edac_caps[dimm->edac_mode]);
+       return sysfs_emit(data, "%s\n", edac_caps[dimm->edac_mode]);
 }
 
 static ssize_t dimmdev_ce_count_show(struct device *dev,
 {
        struct dimm_info *dimm = to_dimm(dev);
 
-       return sprintf(data, "%u\n", dimm->ce_count);
+       return sysfs_emit(data, "%u\n", dimm->ce_count);
 }
 
 static ssize_t dimmdev_ue_count_show(struct device *dev,
 {
        struct dimm_info *dimm = to_dimm(dev);
 
-       return sprintf(data, "%u\n", dimm->ue_count);
+       return sysfs_emit(data, "%u\n", dimm->ue_count);
 }
 
 /* dimm/rank attribute files */
                return bandwidth;
        }
 
-       return sprintf(data, "%d\n", bandwidth);
+       return sysfs_emit(data, "%d\n", bandwidth);
 }
 
 /* default attribute files for the MCI object */
 {
        struct mem_ctl_info *mci = to_mci(dev);
 
-       return sprintf(data, "%u\n", mci->ue_mc);
+       return sysfs_emit(data, "%u\n", mci->ue_mc);
 }
 
 static ssize_t mci_ce_count_show(struct device *dev,
 {
        struct mem_ctl_info *mci = to_mci(dev);
 
-       return sprintf(data, "%u\n", mci->ce_mc);
+       return sysfs_emit(data, "%u\n", mci->ce_mc);
 }
 
 static ssize_t mci_ce_noinfo_show(struct device *dev,
 {
        struct mem_ctl_info *mci = to_mci(dev);
 
-       return sprintf(data, "%u\n", mci->ce_noinfo_count);
+       return sysfs_emit(data, "%u\n", mci->ce_noinfo_count);
 }
 
 static ssize_t mci_ue_noinfo_show(struct device *dev,
 {
        struct mem_ctl_info *mci = to_mci(dev);
 
-       return sprintf(data, "%u\n", mci->ue_noinfo_count);
+       return sysfs_emit(data, "%u\n", mci->ue_noinfo_count);
 }
 
 static ssize_t mci_seconds_show(struct device *dev,
 {
        struct mem_ctl_info *mci = to_mci(dev);
 
-       return sprintf(data, "%ld\n", (jiffies - mci->start_time) / HZ);
+       return sysfs_emit(data, "%ld\n", (jiffies - mci->start_time) / HZ);
 }
 
 static ssize_t mci_ctl_name_show(struct device *dev,
 {
        struct mem_ctl_info *mci = to_mci(dev);
 
-       return sprintf(data, "%s\n", mci->ctl_name);
+       return sysfs_emit(data, "%s\n", mci->ctl_name);
 }
 
 static ssize_t mci_size_mb_show(struct device *dev,
                }
        }
 
-       return sprintf(data, "%u\n", PAGES_TO_MiB(total_pages));
+       return sysfs_emit(data, "%u\n", PAGES_TO_MiB(total_pages));
 }
 
 static ssize_t mci_max_location_show(struct device *dev,