linux/drivers/pci/pcie/aer
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
..
Kconfig PCI AER: software error injection 2009-06-16 14:30:14 -07:00
Kconfig.debug PCI: change PCI nomenclature in drivers/pci/ (non-comment changes) 2009-12-16 13:37:54 -08:00
Makefile PCI AER: software error injection 2009-06-16 14:30:14 -07:00
aer_inject.c PCI: fix nested spinlock hang in aer_inject 2010-01-25 10:42:52 -08:00
aerdrv.c PCI: change PCI nomenclature in drivers/pci/ (comment changes) 2009-12-16 13:37:53 -08:00
aerdrv.h PCI: pcie, aer: report all error before recovery 2009-09-09 13:50:13 -07:00
aerdrv_acpi.c PCI: change PCI nomenclature in drivers/pci/ (comment changes) 2009-12-16 13:37:53 -08:00
aerdrv_core.c PCI: change PCI nomenclature in drivers/pci/ (comment changes) 2009-12-16 13:37:53 -08:00
aerdrv_errprint.c PCI: change PCI nomenclature in drivers/pci/ (non-comment changes) 2009-12-16 13:37:54 -08:00
ecrc.c PCIe AER: use pci_is_pcie() 2009-11-24 15:25:17 -08:00