summaryrefslogtreecommitdiffstats
path: root/arch/x86/pci/amd_bus.c
diff options
context:
space:
mode:
authorAndrew Patterson <andrew.patterson@hp.com>2010-01-22 22:06:53 +0100
committerJesse Barnes <jbarnes@virtuousgeek.org>2010-01-25 19:42:52 +0100
commitbd1f46deba615971a58193afd0202878cadf19a7 (patch)
tree1a197e82ad0f6314f0ff0507c04030aaad933c7c /arch/x86/pci/amd_bus.c
parentMerge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 (diff)
downloadlinux-bd1f46deba615971a58193afd0202878cadf19a7.tar.xz
linux-bd1f46deba615971a58193afd0202878cadf19a7.zip
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>
Diffstat (limited to 'arch/x86/pci/amd_bus.c')
0 files changed, 0 insertions, 0 deletions