On 3/3/25 1:42 PM, Bjorn Helgaas wrote: > From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > > 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 > > Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx> > --- > drivers/pci/pci.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > index 869d204a70a3..3d13bb8e5c53 100644 > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -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; > }