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
..
2005-10-18 08:26:15 -07:00
2009-06-16 14:29:33 -07:00
2009-12-16 10:11:38 -08:00
2009-05-12 12:17:36 +02:00
2009-11-24 15:25:16 -08:00
2009-09-09 13:29:35 -07:00
2010-01-04 15:41:47 -08:00
2009-12-31 12:00:45 -08:00
2009-12-04 16:19:24 -08:00
2009-02-13 12:01:56 -08:00
2008-06-25 16:05:13 -07:00
2009-06-29 12:13:56 -07:00
2009-07-12 12:22:34 -07:00