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

Johan Hovold posted 6 patches 2 years, 1 month ago
There is a newer version of this series
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(-)
[PATCH 0/6] PCI: Fix deadlocks when enabling ASPM
Posted by Johan Hovold 2 years, 1 month ago
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


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(-)

-- 
2.41.0