Merge tag 'io_uring-5.15-2021-09-11' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / drivers / pci / pcie / aer.c
index ec943ce..9784fdc 100644 (file)
@@ -529,21 +529,23 @@ static const char *aer_agent_string[] = {
                     char *buf)                                         \
 {                                                                      \
        unsigned int i;                                                 \
-       char *str = buf;                                                \
        struct pci_dev *pdev = to_pci_dev(dev);                         \
        u64 *stats = pdev->aer_stats->stats_array;                      \
+       size_t len = 0;                                                 \
                                                                        \
        for (i = 0; i < ARRAY_SIZE(strings_array); i++) {               \
                if (strings_array[i])                                   \
-                       str += sprintf(str, "%s %llu\n",                \
-                                      strings_array[i], stats[i]);     \
+                       len += sysfs_emit_at(buf, len, "%s %llu\n",     \
+                                            strings_array[i],          \
+                                            stats[i]);                 \
                else if (stats[i])                                      \
-                       str += sprintf(str, #stats_array "_bit[%d] %llu\n",\
-                                      i, stats[i]);                    \
+                       len += sysfs_emit_at(buf, len,                  \
+                                            #stats_array "_bit[%d] %llu\n",\
+                                            i, stats[i]);              \
        }                                                               \
-       str += sprintf(str, "TOTAL_%s %llu\n", total_string,            \
-                      pdev->aer_stats->total_field);                   \
-       return str-buf;                                                 \
+       len += sysfs_emit_at(buf, len, "TOTAL_%s %llu\n", total_string, \
+                            pdev->aer_stats->total_field);             \
+       return len;                                                     \
 }                                                                      \
 static DEVICE_ATTR_RO(name)
 
@@ -563,7 +565,7 @@ aer_stats_dev_attr(aer_dev_nonfatal, dev_nonfatal_errs,
                     char *buf)                                         \
 {                                                                      \
        struct pci_dev *pdev = to_pci_dev(dev);                         \
-       return sprintf(buf, "%llu\n", pdev->aer_stats->field);          \
+       return sysfs_emit(buf, "%llu\n", pdev->aer_stats->field);       \
 }                                                                      \
 static DEVICE_ATTR_RO(name)
 
@@ -983,7 +985,7 @@ static void aer_recover_work_func(struct work_struct *work)
                pdev = pci_get_domain_bus_and_slot(entry.domain, entry.bus,
                                                   entry.devfn);
                if (!pdev) {
-                       pr_err("AER recover: Can not find pci_dev for %04x:%02x:%02x:%x\n",
+                       pr_err("no pci_dev for %04x:%02x:%02x.%x\n",
                               entry.domain, entry.bus,
                               PCI_SLOT(entry.devfn), PCI_FUNC(entry.devfn));
                        continue;
@@ -1022,7 +1024,7 @@ void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
                                 &aer_recover_ring_lock))
                schedule_work(&aer_recover_work);
        else
-               pr_err("AER recover: Buffer overflow when recovering AER for %04x:%02x:%02x:%x\n",
+               pr_err("buffer overflow in recovery for %04x:%02x:%02x.%x\n",
                       domain, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
 }
 EXPORT_SYMBOL_GPL(aer_recover_queue);
@@ -1405,13 +1407,11 @@ static pci_ers_result_t aer_root_reset(struct pci_dev *dev)
        }
 
        if (type == PCI_EXP_TYPE_RC_EC || type == PCI_EXP_TYPE_RC_END) {
-               if (pcie_has_flr(dev)) {
-                       rc = pcie_flr(dev);
-                       pci_info(dev, "has been reset (%d)\n", rc);
-               } else {
-                       pci_info(dev, "not reset (no FLR support)\n");
-                       rc = -ENOTTY;
-               }
+               rc = pcie_reset_flr(dev, PCI_RESET_DO_RESET);
+               if (!rc)
+                       pci_info(dev, "has been reset\n");
+               else
+                       pci_info(dev, "not reset (no FLR support: %d)\n", rc);
        } else {
                rc = pci_bus_error_reset(dev);
                pci_info(dev, "%s Port link has been reset (%d)\n",