aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac
diff options
context:
space:
mode:
authorBorislav Petkov <borislav.petkov@amd.com>2011-01-07 10:17:46 -0500
committerBorislav Petkov <borislav.petkov@amd.com>2011-03-17 09:46:17 -0400
commitbcd781f46a5f892ef2ae5843839849aa579fe096 (patch)
tree7498d7d5096a61042d9f72444001f8b31e765b25 /drivers/edac
parenta97fa68ec403e2761a37b28651de8fd9da8c5e1f (diff)
amd64_edac: Cleanup NBSH cruft
Remove reporting of errors with UC bit set - this is done by the MCE decoding code anyway and this driver deals with DRAM ECC errors only. UC (NB uncorrectable error) doesn't necessarily mean it is a DRAM error. Remove unused macros while at it. Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac')
-rw-r--r--drivers/edac/amd64_edac.c15
-rw-r--r--drivers/edac/mce_amd.c2
-rw-r--r--drivers/edac/mce_amd.h18
3 files changed, 8 insertions, 27 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index dfa7ac7a4837..04d481b578e4 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -1748,7 +1748,7 @@ static void amd64_handle_ce(struct mem_ctl_info *mci,
1748 u64 sys_addr; 1748 u64 sys_addr;
1749 1749
1750 /* Ensure that the Error Address is VALID */ 1750 /* Ensure that the Error Address is VALID */
1751 if (!(info->nbsh & K8_NBSH_VALID_ERROR_ADDR)) { 1751 if (!(info->nbsh & NBSH_VALID_ERROR_ADDR)) {
1752 amd64_mc_err(mci, "HW has no ERROR_ADDRESS available\n"); 1752 amd64_mc_err(mci, "HW has no ERROR_ADDRESS available\n");
1753 edac_mc_handle_ce_no_info(mci, EDAC_MOD_STR); 1753 edac_mc_handle_ce_no_info(mci, EDAC_MOD_STR);
1754 return; 1754 return;
@@ -1773,7 +1773,7 @@ static void amd64_handle_ue(struct mem_ctl_info *mci,
1773 1773
1774 log_mci = mci; 1774 log_mci = mci;
1775 1775
1776 if (!(info->nbsh & K8_NBSH_VALID_ERROR_ADDR)) { 1776 if (!(info->nbsh & NBSH_VALID_ERROR_ADDR)) {
1777 amd64_mc_err(mci, "HW has no ERROR_ADDRESS available\n"); 1777 amd64_mc_err(mci, "HW has no ERROR_ADDRESS available\n");
1778 edac_mc_handle_ue_no_info(log_mci, EDAC_MOD_STR); 1778 edac_mc_handle_ue_no_info(log_mci, EDAC_MOD_STR);
1779 return; 1779 return;
@@ -1839,17 +1839,6 @@ void amd64_decode_bus_error(int node_id, struct mce *m, u32 nbcfg)
1839 regs.nbcfg = nbcfg; 1839 regs.nbcfg = nbcfg;
1840 1840
1841 __amd64_decode_bus_error(mci, &regs); 1841 __amd64_decode_bus_error(mci, &regs);
1842
1843 /*
1844 * Check the UE bit of the NB status high register, if set generate some
1845 * logs. If NOT a GART error, then process the event as a NO-INFO event.
1846 * If it was a GART error, skip that process.
1847 *
1848 * FIXME: this should go somewhere else, if at all.
1849 */
1850 if (regs.nbsh & K8_NBSH_UC_ERR && !report_gart_errors)
1851 edac_mc_handle_ue_no_info(mci, "UE bit is set");
1852
1853} 1842}
1854 1843
1855/* 1844/*
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
index f6cf73d93359..1afca60345d7 100644
--- a/drivers/edac/mce_amd.c
+++ b/drivers/edac/mce_amd.c
@@ -604,7 +604,7 @@ void amd_decode_nb_mce(int node_id, struct mce *m, u32 nbcfg)
604 /* F10h, revD can disable ErrCpu[3:0] through ErrCpuVal */ 604 /* F10h, revD can disable ErrCpu[3:0] through ErrCpuVal */
605 if ((boot_cpu_data.x86 == 0x10) && 605 if ((boot_cpu_data.x86 == 0x10) &&
606 (boot_cpu_data.x86_model > 7)) { 606 (boot_cpu_data.x86_model > 7)) {
607 if (nbsh & K8_NBSH_ERR_CPU_VAL) 607 if (nbsh & NBSH_ERR_CPU_VAL)
608 core = nbsh & nb_err_cpumask; 608 core = nbsh & nb_err_cpumask;
609 } else { 609 } else {
610 u8 assoc_cpus = nbsh & nb_err_cpumask; 610 u8 assoc_cpus = nbsh & nb_err_cpumask;
diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h
index 45dda47173f2..70a0bb2c13c5 100644
--- a/drivers/edac/mce_amd.h
+++ b/drivers/edac/mce_amd.h
@@ -31,19 +31,11 @@
31#define R4(x) (((x) >> 4) & 0xf) 31#define R4(x) (((x) >> 4) & 0xf)
32#define R4_MSG(x) ((R4(x) < 9) ? rrrr_msgs[R4(x)] : "Wrong R4!") 32#define R4_MSG(x) ((R4(x) < 9) ? rrrr_msgs[R4(x)] : "Wrong R4!")
33 33
34#define K8_NBSH 0x4C 34/*
35 35 * F3x4C bits (MCi_STATUS' high half)
36#define K8_NBSH_VALID_BIT BIT(31) 36 */
37#define K8_NBSH_OVERFLOW BIT(30) 37#define NBSH_VALID_ERROR_ADDR BIT(26)
38#define K8_NBSH_UC_ERR BIT(29) 38#define NBSH_ERR_CPU_VAL BIT(24)
39#define K8_NBSH_ERR_EN BIT(28)
40#define K8_NBSH_MISCV BIT(27)
41#define K8_NBSH_VALID_ERROR_ADDR BIT(26)
42#define K8_NBSH_PCC BIT(25)
43#define K8_NBSH_ERR_CPU_VAL BIT(24)
44#define K8_NBSH_CECC BIT(14)
45#define K8_NBSH_UECC BIT(13)
46#define K8_NBSH_ERR_SCRUBER BIT(8)
47 39
48enum tt_ids { 40enum tt_ids {
49 TT_INSTR = 0, 41 TT_INSTR = 0,