Re: [PATCH v5 1/4] PCI/portdrv: Make use of pci_dev::bridge_d3 for checking the D3 possibility
From: Lukas Wunner
Date: Tue Aug 06 2024 - 02:47:05 EST
On Mon, Aug 05, 2024 at 06:54:42PM +0530, Manivannan Sadhasivam wrote:
> So what is wrong in using pci_dev::bridge_d3?
The bridge_d3 flag may change at runtime, e.g. when writing to the
d3cold_allowed attribute in sysfs.
If e.g. bridge_d3 is set when pcie_portdrv_probe() runs but no longer
set when pcie_portdrv_remove() runs, there would be a runtime PM ref
imbalance. (Ref would be dropped on probe, but not reacquired on remove.)
> Again, pci_bridge_d3_possible() is not making use of values that could change
> dynamically.
Which is precisely the reason why it (and not the bridge_d3 flag) is
used by pcie_portdrv_{probe,remove,shutdown}().
Thanks,
Lukas