diff options
author | Zhang, Yanmin <yanmin_zhang@linux.intel.com> | 2009-06-16 09:35:16 +0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-06-17 01:30:14 +0400 |
commit | 3d5505c56db5c8d1eeca45c325b19e95115afdea (patch) | |
tree | fe3f99f5f38c2b93f7c4421aaeaf3df604dda374 /drivers/pci/pcie/aer/aerdrv.h | |
parent | 28eb27cf0839a30948335f9b2edda739f48b7a2e (diff) | |
download | linux-3d5505c56db5c8d1eeca45c325b19e95115afdea.tar.xz |
PCI AER: multiple error support
When a root port receives the same errors more than once before the
kernel process them, the Multiple Error Messages Received flags are set
by hardware. Because the root port could only save one kind of
correctable error source id and another uncorrectable error source id at
the same time, the second message sender id is lost if the 2 messages
are sent from 2 different devices. This patch makes the kernel search
all devices under the root port when multiple messages are received.
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>
Diffstat (limited to 'drivers/pci/pcie/aer/aerdrv.h')
-rw-r--r-- | drivers/pci/pcie/aer/aerdrv.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/pci/pcie/aer/aerdrv.h b/drivers/pci/pcie/aer/aerdrv.h index dadf492e9ce9..bbd7428ca2d0 100644 --- a/drivers/pci/pcie/aer/aerdrv.h +++ b/drivers/pci/pcie/aer/aerdrv.h @@ -57,8 +57,10 @@ struct header_log_regs { unsigned int dw3; }; +#define AER_MAX_MULTI_ERR_DEVICES 5 /* Not likely to have more */ struct aer_err_info { - struct pci_dev *dev; + struct pci_dev *dev[AER_MAX_MULTI_ERR_DEVICES]; + int error_dev_num; u16 id; int severity; /* 0:NONFATAL | 1:FATAL | 2:COR */ int flags; |