Message ID | 20231128081512.19387-1-johan+linaro@kernel.org |
---|---|
Headers | show |
Series | PCI: Fix deadlocks when enabling ASPM | expand |
Hi PCI maintainers, 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 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 Could we get this merged for 6.7-rc5? Even if the risk of a deadlock is not that great, this bug prevents using lockdep on Qualcomm platforms so that more locking issues can potentially make their way into the kernel. And for Qualcomm platforms, this is a regression in 6.7-rc1. Johan #regzbot introduced: 9f4f3dfad8cf
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!
[TLDR: This mail in primarily relevant for Linux kernel regression tracking. See link in footer if these mails annoy you.] On 07.12.23 14:25, Johan Hovold wrote: > 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 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 > > Could we get this merged for 6.7-rc5? Even if the risk of a deadlock is > not that great, this bug prevents using lockdep on Qualcomm platforms so > that more locking issues can potentially make their way into the kernel. > > And for Qualcomm platforms, this is a regression in 6.7-rc1. > > #regzbot introduced: 9f4f3dfad8cf Fixes are now here: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git/log/?h=for-linus #regzbot fix: 075268be58232b0a2ae #regzbot ignore-activity Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat) -- Everything you wanna know about Linux kernel regression tracking: https://linux-regtracking.leemhuis.info/about/#tldr That page also explains what to do if mails like this annoy you.