On Fri, Aug 13, 2021 at 10:26:06PM -0700, Rajat Jain wrote: > 2) Is my understanding correct that any device should NOT be runtime > suspended while a driver is trying to attach to the device? Where is > this ensured (for e.g. for NVMEs)? Is this ensured by the driver core, > or a device driver that is trying to probe a PCI device needs to > ensure this? For some reason the driver core only runtime resumes a device on unbind (in __device_release_driver()), but not on bind (in driver_probe_device()). However, the PCI core makes up for that by runtime resuming the device in local_pci_probe(). > 3) So all downstream devices of a PCI bridge need to be suspended > before it can be suspended (and vice versa for resume)? In other > words, is ita bug if I notice that a PCI bridge is runtime suspended > while any of its downstream devices are not? Yes to both questions. > 4) Any suggestions for me to try? Could you try to bisect the issue? Thanks, Lukas