Re: [PATCH] PCI: Log debug messages about reset method

From: Dave Jiang
Date: Mon Mar 03 2025 - 16:08:44 EST




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;
> }