linux/drivers/pci/pcie
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
..
aer PCI: fix nested spinlock hang in aer_inject 2010-01-25 10:42:52 -08:00
Kconfig PCI Express ASPM support should default to 'No' 2008-04-23 15:41:14 -07:00
Makefile PCI: add PCI Express ASPM support 2008-04-20 21:47:03 -07:00
aspm.c PCI: change PCI nomenclature in drivers/pci/ (comment changes) 2009-12-16 13:37:53 -08:00
portdrv.h PCI: portdrv: remove redundant definitions 2009-12-04 15:56:24 -08:00
portdrv_bus.c PCI: portdrv: remove unnecessary struct pcie_port_data 2009-12-04 15:56:19 -08:00
portdrv_core.c PCI: pcie portdrv: style cleanup 2010-01-04 08:29:37 -08:00
portdrv_pci.c PCI: pcie portdrv: style cleanup 2010-01-04 08:29:37 -08:00