2021-03-11 13:25:21

by Niklas Schnelle

[permalink] [raw]
Subject: [PATCH] PCI: Print a debug message on PCI device release

Commit 62795041418d ("PCI: enhance physical slot debug information")
added a debug print on releasing the PCI slot and another message on
destroying it. There is however no debug print on releasing the PCI
device structure itself and even with closely looking at the kernel log
during hotplug testing, I overlooked several missing pci_dev_put() calls
for way too long. So let's add a debug print in pci_release_dev() making
it much easier to spot when the PCI device structure is not released
when it is supposed to.

Signed-off-by: Niklas Schnelle <[email protected]>
---
drivers/pci/probe.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 953f15abc850..3e3669a00a2f 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -2226,6 +2226,7 @@ static void pci_release_dev(struct device *dev)
pci_bus_put(pci_dev->bus);
kfree(pci_dev->driver_override);
bitmap_free(pci_dev->dma_alias_mask);
+ dev_dbg(dev, "device released\n");
kfree(pci_dev);
}

--
2.25.1


2021-05-28 00:35:57

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] PCI: Print a debug message on PCI device release

On Thu, Mar 11, 2021 at 02:23:12PM +0100, Niklas Schnelle wrote:
> Commit 62795041418d ("PCI: enhance physical slot debug information")
> added a debug print on releasing the PCI slot and another message on
> destroying it. There is however no debug print on releasing the PCI
> device structure itself and even with closely looking at the kernel log
> during hotplug testing, I overlooked several missing pci_dev_put() calls
> for way too long. So let's add a debug print in pci_release_dev() making
> it much easier to spot when the PCI device structure is not released
> when it is supposed to.
>
> Signed-off-by: Niklas Schnelle <[email protected]>

Applied to pci/enumeration for v5.14, thanks!

> ---
> drivers/pci/probe.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index 953f15abc850..3e3669a00a2f 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -2226,6 +2226,7 @@ static void pci_release_dev(struct device *dev)
> pci_bus_put(pci_dev->bus);
> kfree(pci_dev->driver_override);
> bitmap_free(pci_dev->dma_alias_mask);
> + dev_dbg(dev, "device released\n");
> kfree(pci_dev);
> }
>
> --
> 2.25.1
>