diff options
| -rw-r--r-- | drivers/edac/mce_amd.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c index 9fa61ee2d743..1f895dfb756a 100644 --- a/drivers/edac/mce_amd.c +++ b/drivers/edac/mce_amd.c | |||
| @@ -74,16 +74,10 @@ static const char *f10h_nb_mce_desc[] = { | |||
| 74 | "ECC Error in the Probe Filter directory" | 74 | "ECC Error in the Probe Filter directory" |
| 75 | }; | 75 | }; |
| 76 | 76 | ||
| 77 | static bool f10h_dc_mce(u16 ec) | 77 | static bool f12h_dc_mce(u16 ec) |
| 78 | { | 78 | { |
| 79 | u8 r4 = (ec >> 4) & 0xf; | ||
| 80 | bool ret = false; | 79 | bool ret = false; |
| 81 | 80 | ||
| 82 | if (r4 == R4_GEN) { | ||
| 83 | pr_cont("during data scrub.\n"); | ||
| 84 | return true; | ||
| 85 | } | ||
| 86 | |||
| 87 | if (MEM_ERROR(ec)) { | 81 | if (MEM_ERROR(ec)) { |
| 88 | u8 ll = ec & 0x3; | 82 | u8 ll = ec & 0x3; |
| 89 | ret = true; | 83 | ret = true; |
| @@ -98,6 +92,18 @@ static bool f10h_dc_mce(u16 ec) | |||
| 98 | return ret; | 92 | return ret; |
| 99 | } | 93 | } |
| 100 | 94 | ||
| 95 | static bool f10h_dc_mce(u16 ec) | ||
| 96 | { | ||
| 97 | u8 r4 = (ec >> 4) & 0xf; | ||
| 98 | u8 ll = ec & 0x3; | ||
| 99 | |||
| 100 | if (r4 == R4_GEN && ll == LL_L1) { | ||
| 101 | pr_cont("during data scrub.\n"); | ||
| 102 | return true; | ||
| 103 | } | ||
| 104 | return f12h_dc_mce(ec); | ||
| 105 | } | ||
| 106 | |||
| 101 | static bool k8_dc_mce(u16 ec) | 107 | static bool k8_dc_mce(u16 ec) |
| 102 | { | 108 | { |
| 103 | if (BUS_ERROR(ec)) { | 109 | if (BUS_ERROR(ec)) { |
| @@ -632,6 +638,10 @@ static int __init mce_amd_init(void) | |||
| 632 | fam_ops->nb_mce = f10h_nb_mce; | 638 | fam_ops->nb_mce = f10h_nb_mce; |
| 633 | break; | 639 | break; |
| 634 | 640 | ||
| 641 | case 0x12: | ||
| 642 | fam_ops->dc_mce = f12h_dc_mce; | ||
| 643 | break; | ||
| 644 | |||
| 635 | case 0x14: | 645 | case 0x14: |
| 636 | nb_err_cpumask = 0x3; | 646 | nb_err_cpumask = 0x3; |
| 637 | fam_ops->dc_mce = f14h_dc_mce; | 647 | fam_ops->dc_mce = f14h_dc_mce; |
