On Fri, Aug 2, 2024 at 11:49 AM Lukas Wunner <lukas@xxxxxxxxx> wrote: > > On Fri, Aug 02, 2024 at 11:25:00AM +0530, Manivannan Sadhasivam via B4 Relay wrote: > > PCI core is already caching the value of pci_bridge_d3_possible() in > > pci_dev::bridge_d3 during pci_pm_init(). Since the value is not going to > > change, Is that really the case? Have you seen pci_bridge_d3_update()? > let's make use of the cached value. > [...] > > --- a/drivers/pci/pcie/portdrv.c > > +++ b/drivers/pci/pcie/portdrv.c > > @@ -702,7 +702,7 @@ static int pcie_portdrv_probe(struct pci_dev *dev, > > dev_pm_set_driver_flags(&dev->dev, DPM_FLAG_NO_DIRECT_COMPLETE | > > DPM_FLAG_SMART_SUSPEND); > > > > - if (pci_bridge_d3_possible(dev)) { > > + if (dev->bridge_d3) { > > I don't know if there was a reason to call pci_bridge_d3_possible() > (instead of using the cached value) on probe, remove and shutdown. > > The change is probably safe but it would still be good to get some > positive test results with Thunderbolt laptops etc to raise the > confidence. If I'm not mistaken, the change is not correct.