PCI: Log debug messages about reset method
authorBjorn Helgaas <bhelgaas@google.com>
Mon, 3 Mar 2025 20:42:20 +0000 (14:42 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 4 Mar 2025 22:44:43 +0000 (16:44 -0600)
Log pci_dbg() messages about the reset methods we attempt and any errors
(-ENOTTY means "try the next method").

Set CONFIG_DYNAMIC_DEBUG=y and enable by booting with
dyndbg="file drivers/pci/* +p" or enable at runtime:

  # echo "file drivers/pci/* +p" > /sys/kernel/debug/dynamic_debug/control

Link: https://lore.kernel.org/r/20250303204220.197172-1-helgaas@kernel.org
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
drivers/pci/pci.c

index 869d204a70a372d240b1a6988a2159a79999e1ca..3d13bb8e5c532b24d06e42017a68b1f89086b8d2 100644 (file)
@@ -5230,6 +5230,7 @@ const struct pci_reset_fn_method pci_reset_fn_methods[] = {
 int __pci_reset_function_locked(struct pci_dev *dev)
 {
        int i, m, rc;
+       const struct pci_reset_fn_method *method;
 
        might_sleep();
 
@@ -5246,9 +5247,13 @@ int __pci_reset_function_locked(struct pci_dev *dev)
                if (!m)
                        return -ENOTTY;
 
-               rc = pci_reset_fn_methods[m].reset_fn(dev, PCI_RESET_DO_RESET);
+               method = &pci_reset_fn_methods[m];
+               pci_dbg(dev, "reset via %s\n", method->name);
+               rc = method->reset_fn(dev, PCI_RESET_DO_RESET);
                if (!rc)
                        return 0;
+
+               pci_dbg(dev, "%s failed with %d\n", method->name, rc);
                if (rc != -ENOTTY)
                        return rc;
        }