PCI AER: support Multiple Error Received and no error source id
authorZhang, Yanmin <yanmin_zhang@linux.intel.com>
Tue, 16 Jun 2009 05:34:38 +0000 (13:34 +0800)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 16 Jun 2009 21:30:13 +0000 (14:30 -0700)
commit70298c6e6c1ba68346336b4ea54bd5c0abbf73c8
tree363d0a784d8a28688c0fda006279563a7fd3629b
parenta6c0d5c6ebb3d988b1f18a1612b5188f3f555637
PCI AER: support Multiple Error Received and no error source id

Based on PCI Express AER specs, a root port might receive multiple
TLP errors while it could only save a correctable error source id
and an uncorrectable error source id at the same time. In addition,
some root port hardware might be unable to provide a correct source
id, i.e., the source id, or the bus id part of the source id provided
by root port might be equal to 0.

The patchset implements the support in kernel by searching the device
tree under the root port.

Patch 1 changes parameter cb of function pci_walk_bus to return a value.
When cb return non-zero, pci_walk_bus stops more searching on the
device tree.

Reviewed-by: Andrew Patterson <andrew.patterson@hp.com>
Signed-off-by: Zhang Yanmin <yanmin_zhang@linux.intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
arch/powerpc/platforms/pseries/eeh_driver.c
drivers/pci/bus.c
drivers/pci/pcie/aer/aerdrv_core.c
include/linux/pci.h