ossible to use lock guards for `pci_rescan_remove_lock` and make use of them in the s390 architecture PCI implementation. I've run a /lot/ of tests with affected PCI adapters: * enable/disable SR-IOV on the PF; * run FLR reset on PF and VF; * run Bus reset on PF and VF; * run s390's recover SysFS attribute on PF and VF; * disable/enable power with the hotplug SysFS attribute on PF and VF; * run `zpcictl` with `--reset`/`--reset-fw` on PF and VF; * run Configure Off and Configure On on both the PF and VF from a Service Element. There is no more deadlocks and no other lockdep warnings I've witnessed. Benjamin Block (4): PCI: Move declaration of pci_rescan_remove_lock into public pci.h s390/pci: Fix circular/recursive deadlocks in PCI-bus and -device release PCI: Provide lock guard for pci_rescan_remove_lock s390/pci: Use lock guard for pci_rescan_remove_lock arch/s390/pci/pci.c | 11 ++++++++--- arch/s390/pci/pci_bus.c | 15 ++++++++------- arch/s390/pci/pci_event.c | 28 +++++++++++++++++++--------- arch/s390/pci/pci_iov.c | 3 +-- arch/s390/pci/pci_sysfs.c | 9 +++------ drivers/pci/pci.h | 2 -- drivers/pci/probe.c | 1 + include/linux/pci.h | 5 +++++ 8 files changed, 45 insertions(+), 29 deletions(-) base-commit: 5ee8dbf54602dc340d6235b1d6aa17c0f283f48c -- 2.53.0[PATCH 0/4] PCI: s390/pci: Fix deadlocks on s390 when releasing zPCI-bus or -device objectsBenjamin Block undefinedGerald Schaefer , Vasily Gorbik , Bjorn Helgaas , Alexander Gordeev , Heiko Carstens , Niklas Schnelle undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefinedŠ}†ÄK