The sysfs_emit() and sysfs_emit_at() functions were introduced to make
it less ambiguous which function is preferred when writing to the output
buffer in a device attribute's "show" callback [1].

Convert the PCI sysfs object "show" functions from sprintf(), snprintf()
and scnprintf() to sysfs_emit() and sysfs_emit_at() accordingly, as the
latter is aware of the PAGE_SIZE buffer and correctly returns the number
of bytes written into the buffer.

No functional change intended.

[1] Documentation/filesystems/sysfs.rst

Related to:
  commit ad025f8e46f3 ("PCI/sysfs: Use sysfs_emit() and sysfs_emit_at() in 
"show" functions")

Signed-off-by: Krzysztof Wilczyński <k...@linux.com>
---
 drivers/pci/hotplug/shpchp_sysfs.c | 38 +++++++++++++++++-------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/drivers/pci/hotplug/shpchp_sysfs.c 
b/drivers/pci/hotplug/shpchp_sysfs.c
index 45658bb5c554..64beed7a26be 100644
--- a/drivers/pci/hotplug/shpchp_sysfs.c
+++ b/drivers/pci/hotplug/shpchp_sysfs.c
@@ -24,50 +24,54 @@
 static ssize_t show_ctrl(struct device *dev, struct device_attribute *attr, 
char *buf)
 {
        struct pci_dev *pdev;
-       char *out = buf;
        int index, busnr;
        struct resource *res;
        struct pci_bus *bus;
+       size_t len = 0;
 
        pdev = to_pci_dev(dev);
        bus = pdev->subordinate;
 
-       out += sprintf(buf, "Free resources: memory\n");
+       len += sysfs_emit_at(buf, len, "Free resources: memory\n");
        pci_bus_for_each_resource(bus, res, index) {
                if (res && (res->flags & IORESOURCE_MEM) &&
                                !(res->flags & IORESOURCE_PREFETCH)) {
-                       out += sprintf(out, "start = %8.8llx, length = 
%8.8llx\n",
-                                      (unsigned long long)res->start,
-                                      (unsigned long long)resource_size(res));
+                       len += sysfs_emit_at(buf, len,
+                                            "start = %8.8llx, length = 
%8.8llx\n",
+                                            (unsigned long long)res->start,
+                                            (unsigned long 
long)resource_size(res));
                }
        }
-       out += sprintf(out, "Free resources: prefetchable memory\n");
+       len += sysfs_emit_at(buf, len, "Free resources: prefetchable memory\n");
        pci_bus_for_each_resource(bus, res, index) {
                if (res && (res->flags & IORESOURCE_MEM) &&
                               (res->flags & IORESOURCE_PREFETCH)) {
-                       out += sprintf(out, "start = %8.8llx, length = 
%8.8llx\n",
-                                      (unsigned long long)res->start,
-                                      (unsigned long long)resource_size(res));
+                       len += sysfs_emit_at(buf, len,
+                                            "start = %8.8llx, length = 
%8.8llx\n",
+                                            (unsigned long long)res->start,
+                                            (unsigned long 
long)resource_size(res));
                }
        }
-       out += sprintf(out, "Free resources: IO\n");
+       len += sysfs_emit_at(buf, len, "Free resources: IO\n");
        pci_bus_for_each_resource(bus, res, index) {
                if (res && (res->flags & IORESOURCE_IO)) {
-                       out += sprintf(out, "start = %8.8llx, length = 
%8.8llx\n",
-                                      (unsigned long long)res->start,
-                                      (unsigned long long)resource_size(res));
+                       len += sysfs_emit_at(buf, len,
+                                            "start = %8.8llx, length = 
%8.8llx\n",
+                                            (unsigned long long)res->start,
+                                            (unsigned long 
long)resource_size(res));
                }
        }
-       out += sprintf(out, "Free resources: bus numbers\n");
+       len += sysfs_emit_at(buf, len, "Free resources: bus numbers\n");
        for (busnr = bus->busn_res.start; busnr <= bus->busn_res.end; busnr++) {
                if (!pci_find_bus(pci_domain_nr(bus), busnr))
                        break;
        }
        if (busnr < bus->busn_res.end)
-               out += sprintf(out, "start = %8.8x, length = %8.8x\n",
-                               busnr, (int)(bus->busn_res.end - busnr));
+               len += sysfs_emit_at(buf, len,
+                                    "start = %8.8x, length = %8.8x\n",
+                                    busnr, (int)(bus->busn_res.end - busnr));
 
-       return out - buf;
+       return len;
 }
 static DEVICE_ATTR(ctrl, S_IRUGO, show_ctrl, NULL);
 
-- 
2.31.1

Reply via email to