bd1f46deba
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> |
||
---|---|---|
.. | ||
hotplug | ||
pcie | ||
.gitignore | ||
access.c | ||
bus.c | ||
dmar.c | ||
hotplug-pci.c | ||
hotplug.c | ||
htirq.c | ||
intel-iommu.c | ||
intr_remapping.c | ||
intr_remapping.h | ||
ioapic.c | ||
iov.c | ||
iova.c | ||
irq.c | ||
Kconfig | ||
legacy.c | ||
Makefile | ||
msi.c | ||
msi.h | ||
pci-acpi.c | ||
pci-driver.c | ||
pci-stub.c | ||
pci-sysfs.c | ||
pci.c | ||
pci.h | ||
probe.c | ||
proc.c | ||
quirks.c | ||
remove.c | ||
rom.c | ||
search.c | ||
setup-bus.c | ||
setup-irq.c | ||
setup-res.c | ||
slot.c | ||
syscall.c |