diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2012-08-09 12:41:07 -0400 |
---|---|---|
committer | Borislav Petkov <bp@alien8.de> | 2012-11-28 05:45:01 -0500 |
commit | 66fed2d464157eb20c37738d75b281458dfc2cab (patch) | |
tree | 2ef45590cacc3c69d9901153f4dc1199e20b7fa1 /drivers/edac/amd64_edac.c | |
parent | 6e71a870b8ff2c1e2d89e5ea27a38cea39cefa3d (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.c | 10 |
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 | ||
63 | static int __amd64_read_pci_cfg_dword(struct pci_dev *pdev, int offset, | 63 | int __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) | |||
1980 | static inline void __amd64_decode_bus_error(struct mem_ctl_info *mci, | 1980 | static 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 | ||