linux-uconsole/drivers/pci/pcie
Andrew Patterson 90022a26dd PCI: fix nested spinlock hang in aer_inject
commit bd1f46deba upstream.

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>
Cc: maximilian attems <max@stro.at>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-04-26 07:41:31 -07:00
..
aer PCI: fix nested spinlock hang in aer_inject 2010-04-26 07:41:31 -07:00
aspm.c PCI ASPM: fix oops on root port removal 2009-11-06 14:01:23 -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
portdrv.h PCI: PCIe portdrv: Implement pm object 2009-03-20 10:47:49 -07:00
portdrv_bus.c PCI: PCIe portdrv: Remove struct pcie_port_service_id 2009-03-19 19:29:23 -07:00
portdrv_core.c PCI: pcie portdrv: remove unused variable 2009-09-11 08:46:07 -07:00
portdrv_pci.c PCI: PCIe portdrv: remove "-driver" from driver name 2009-10-06 09:41:48 -07:00