On Tue, Aug 27, 2024 at 10:56 AM Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> wrote: > > On Fri, Aug 23, 2024 at 11:33:23AM +0200, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > > > If we trigger the bus rescan from sysfs, we'll try to lock the PCI > > I think the first 'we' is user and second 'we' is PCI and pwrctl drivers. If so, > it should be spelled out to make it clear. > > > rescan mutex recursively and deadlock - the platform device will be > > populated and probed on the same thread that handles the sysfs write. > > > > A little bit rewording could help here: > > 'When a user triggers a rescan from sysfs, sysfs code acquires the > pci_rescan_remove_lock during the start of the rescan. Then if a platform > device is created, pwrctl driver may get probed to control the power to the > device and it will also try to acquire the same lock to do the rescan after > powering up the device. And this will cause a deadlock.' > > > Add a workqueue to the pwrctl code on which we schedule the rescan for > > controlled PCI devices. While at it: add a new interface for > > initializing the pwrctl context where we'd now assign the parent device > > address and initialize the workqueue. > > > > Fixes: 4565d2652a37 ("PCI/pwrctl: Add PCI power control core code") > > Reported-by: Konrad Dybcio <konradybcio@xxxxxxxxxx> > > Don't we need 'Closes' link these days? I hope this is reported in ML. > Nope, unfortunately on IRC. But the tag is unformally optional it seems. Bart > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > With above changes, > > Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>