Re: [PATCH v2 0/6] PCI: Fix deadlocks when enabling ASPM

Bjorn Helgaas
2023-12-08T17:53:21Z

On Tue, Nov 28, 2023 at 09:15:06AM +0100, Johan Hovold wrote:
> The pci_enable_link_state() helper is currently only called from
> pci_walk_bus(), something which can lead to a deadlock as both helpers
> take a pci_bus_sem read lock.
>
> Add a new locked helper which can be called with the read lock held and
> fix up the two current users (the second is new in 6.7-rc1).
>
> Note that there are no users left of the original unlocked variant after
> this series, but I decided to leave it in place for now (e.g. to mirror
> the corresponding helpers to disable link states).
>
> Included are also a couple of related cleanups.
>
> Johan
>
>
> Changes in v2
> - fix up the function name in a kernel doc comment as reported by the
> kernel test robot <lkp@intel.com>
>
>
> Johan Hovold (6):
> PCI/ASPM: Add locked helper for enabling link state
> PCI: vmd: Fix deadlock when enabling ASPM
> PCI: qcom: Fix deadlock when enabling ASPM
> PCI: qcom: Clean up ASPM comment
> PCI/ASPM: Clean up disable link state parameter
> PCI/ASPM: Add lockdep assert to link state helper
>
> drivers/pci/controller/dwc/pcie-qcom.c | 7 ++-
> drivers/pci/controller/vmd.c | 2 +-
> drivers/pci/pcie/aspm.c | 65 +++++++++++++++++++-------
> include/linux/pci.h | 3 ++
> 4 files changed, 56 insertions(+), 21 deletions(-)

Applied to for-linus for v6.7, thanks, Johan!