aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/amd64_edac.c
diff options
context:
space:
mode:
authorBorislav Petkov <borislav.petkov@amd.com>2012-08-09 12:41:07 -0400
committerBorislav Petkov <bp@alien8.de>2012-11-28 05:45:01 -0500
commit66fed2d464157eb20c37738d75b281458dfc2cab (patch)
tree2ef45590cacc3c69d9901153f4dc1199e20b7fa1 /drivers/edac/amd64_edac.c
parent6e71a870b8ff2c1e2d89e5ea27a38cea39cefa3d (diff)
amd64_edac: Improve error injection
When injecting DRAM ECC errors over the F3xB[8,C] interface, the machine does this by injecting the error in the next non-cached access. This takes relatively long time on a normal system so that in order for us to expedite it, we disable the caches around the injection. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac/amd64_edac.c')
-rw-r--r--drivers/edac/amd64_edac.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index 5960a8a07fd2..351496af9e8d 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -60,8 +60,8 @@ struct scrubrate {
60 { 0x00, 0UL}, /* scrubbing off */ 60 { 0x00, 0UL}, /* scrubbing off */
61}; 61};
62 62
63static int __amd64_read_pci_cfg_dword(struct pci_dev *pdev, int offset, 63int __amd64_read_pci_cfg_dword(struct pci_dev *pdev, int offset,
64 u32 *val, const char *func) 64 u32 *val, const char *func)
65{ 65{
66 int err = 0; 66 int err = 0;
67 67
@@ -1980,11 +1980,11 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m)
1980static inline void __amd64_decode_bus_error(struct mem_ctl_info *mci, 1980static inline void __amd64_decode_bus_error(struct mem_ctl_info *mci,
1981 struct mce *m) 1981 struct mce *m)
1982{ 1982{
1983 u16 ec = EC(m->status);
1984 u8 xec = XEC(m->status, 0x1f);
1985 u8 ecc_type = (m->status >> 45) & 0x3; 1983 u8 ecc_type = (m->status >> 45) & 0x3;
1984 u8 xec = XEC(m->status, 0x1f);
1985 u16 ec = EC(m->status);
1986 1986
1987 /* Bail early out if this was an 'observed' error */ 1987 /* Bail out early if this was an 'observed' error */
1988 if (PP(ec) == NBSL_PP_OBS) 1988 if (PP(ec) == NBSL_PP_OBS)
1989 return; 1989 return;
1990 1990