[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZrHG2KnGp9N00mV_@wunner.de>
Date: Tue, 6 Aug 2024 08:46:48 +0200
From: Lukas Wunner <lukas@...ner.de>
To: Manivannan Sadhasivam <manivannan.sadhasivam@...aro.org>
Cc: "Rafael J. Wysocki" <rafael@...nel.org>,
Bjorn Helgaas <bhelgaas@...gle.com>, Len Brown <lenb@...nel.org>,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-acpi@...r.kernel.org, mika.westerberg@...ux.intel.com,
Hsin-Yi Wang <hsinyi@...omium.org>
Subject: Re: [PATCH v5 1/4] PCI/portdrv: Make use of pci_dev::bridge_d3 for
checking the D3 possibility
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
Powered by blists - more mailing lists