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