1
linux/drivers/pci
Andrew Patterson bd1f46deba PCI: fix nested spinlock hang in aer_inject
The aer_inject module hangs in aer_inject() when checking the device's
error masks.  The hang is due to a recursive use of the aer_inject lock.
The aer_inject() routine grabs the lock while processing the error and then
calls pci_read_config_dword to read the masks. The pci_read_config_dword
routine is earlier overridden by pci_read_aer, which among other things,
grabs the aer_inject lock.

Fixed by moving the pci_read_config_dword calls to read the masks to before
the lock is taken.

Acked-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Andrew Patterson <andrew.patterson@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-01-25 10:42:52 -08:00
..
hotplug PCI: change PCI nomenclature in drivers/pci/ (comment changes) 2009-12-16 13:37:53 -08:00
pcie PCI: fix nested spinlock hang in aer_inject 2010-01-25 10:42:52 -08:00
.gitignore
access.c
bus.c
dmar.c Merge git://git.infradead.org/iommu-2.6 2009-12-16 10:11:38 -08:00
hotplug-pci.c
hotplug.c
htirq.c
intel-iommu.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-12-30 13:13:24 -08:00
intr_remapping.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-12-30 13:13:24 -08:00
intr_remapping.h intr-remap: generic support for remapping HPET MSIs 2009-08-27 23:33:20 +02:00
ioapic.c PCI hotplug: move IOAPIC support from acpiphp to ioapic driver 2009-11-04 13:06:39 -08:00
iov.c PCI: use pci_is_pcie() in pci core 2009-11-24 15:25:16 -08:00
iova.c intel-iommu: Remove superfluous iova_alloc_lock from IOVA code 2009-07-15 08:17:02 +01:00
irq.c
Kconfig PCI: remove pci_find_slot from PCI_LEGACY config description 2009-11-04 13:06:42 -08:00
legacy.c PCI: disable pci_find_device warnings when deprecated pci functions are enabled 2009-09-09 13:29:25 -07:00
Makefile PCI hotplug: move IOAPIC support from acpiphp to ioapic driver 2009-11-04 13:06:39 -08:00
msi.c PCI MSI: Style cleanups 2009-09-09 13:29:35 -07:00
msi.h
pci-acpi.c PCI/PM: Propagate wake-up enable for PCIe devices too 2009-12-16 13:37:49 -08:00
pci-driver.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-09-16 07:49:54 -07:00
pci-stub.c PCI: pci-stub: add pci_stub.ids parameter 2009-09-09 13:44:34 -07:00
pci-sysfs.c PCI: Check the node argument passed to cpumask_of_node 2010-01-04 15:10:56 -08:00
pci.c PCI/PM: Use per-device D3 delays 2010-01-04 15:41:47 -08:00
pci.h PCI: Fix build if quirks are not enabled 2009-12-31 12:00:45 -08:00
probe.c PCI: add pci_request_acs 2009-12-04 16:19:24 -08:00
proc.c
quirks.c pci: avoid compiler warning in quirks.c 2009-12-31 16:44:43 -08:00
remove.c
rom.c
search.c PCI: change PCI nomenclature in drivers/pci/ (comment changes) 2009-12-16 13:37:53 -08:00
setup-bus.c PCI: Always set prefetchable base/limit upper32 registers 2009-12-04 15:52:43 -08:00
setup-irq.c
setup-res.c PCI: improve discovery/configuration messages 2009-11-04 13:06:44 -08:00
slot.c
syscall.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00