aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/amd64_edac.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2012-06-04 12:27:43 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-06-12 11:15:47 -0400
commit9eb07a7fb8a90ee39fa9d5489afc0330cfcfbea7 (patch)
tree2d034ec31225f2b82267ab3e081c4e8263e7b85f /drivers/edac/amd64_edac.c
parent03f7eae80f4b913929be84e0c883ee98196fd6ff (diff)
edac: edac_mc_handle_error(): add an error_count parameter
In order to avoid loosing error events, it is desirable to group error events together and generate a single trace for several identical errors. The trace API already allows reporting multiple errors. Change the handle_error function to also allow that. The changes at the drivers were made by this small script: $file .=$_ while (<>); $file =~ s/(edac_mc_handle_error)\s*\(([^\,]+)\,([^\,]+)\,/$1($2,$3, 1,/g; print $file; Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/edac/amd64_edac.c')
-rw-r--r--drivers/edac/amd64_edac.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
index 6231cbe6e7c1..5a297a26211d 100644
--- a/drivers/edac/amd64_edac.c
+++ b/drivers/edac/amd64_edac.c
@@ -1046,7 +1046,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
1046 if (!src_mci) { 1046 if (!src_mci) {
1047 amd64_mc_err(mci, "failed to map error addr 0x%lx to a node\n", 1047 amd64_mc_err(mci, "failed to map error addr 0x%lx to a node\n",
1048 (unsigned long)sys_addr); 1048 (unsigned long)sys_addr);
1049 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1049 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
1050 page, offset, syndrome, 1050 page, offset, syndrome,
1051 -1, -1, -1, 1051 -1, -1, -1,
1052 "failed to map error addr to a node", 1052 "failed to map error addr to a node",
@@ -1057,7 +1057,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
1057 /* Now map the sys_addr to a CSROW */ 1057 /* Now map the sys_addr to a CSROW */
1058 csrow = sys_addr_to_csrow(src_mci, sys_addr); 1058 csrow = sys_addr_to_csrow(src_mci, sys_addr);
1059 if (csrow < 0) { 1059 if (csrow < 0) {
1060 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1060 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
1061 page, offset, syndrome, 1061 page, offset, syndrome,
1062 -1, -1, -1, 1062 -1, -1, -1,
1063 "failed to map error addr to a csrow", 1063 "failed to map error addr to a csrow",
@@ -1077,7 +1077,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
1077 amd64_mc_warn(src_mci, "unknown syndrome 0x%04x - " 1077 amd64_mc_warn(src_mci, "unknown syndrome 0x%04x - "
1078 "possible error reporting race\n", 1078 "possible error reporting race\n",
1079 syndrome); 1079 syndrome);
1080 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1080 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
1081 page, offset, syndrome, 1081 page, offset, syndrome,
1082 csrow, -1, -1, 1082 csrow, -1, -1,
1083 "unknown syndrome - possible error reporting race", 1083 "unknown syndrome - possible error reporting race",
@@ -1096,7 +1096,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
1096 channel = ((sys_addr & BIT(3)) != 0); 1096 channel = ((sys_addr & BIT(3)) != 0);
1097 } 1097 }
1098 1098
1099 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, src_mci, 1099 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, src_mci, 1,
1100 page, offset, syndrome, 1100 page, offset, syndrome,
1101 csrow, channel, -1, 1101 csrow, channel, -1,
1102 "", ""); 1102 "", "");
@@ -1608,7 +1608,7 @@ static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
1608 csrow = f1x_translate_sysaddr_to_cs(pvt, sys_addr, &nid, &chan); 1608 csrow = f1x_translate_sysaddr_to_cs(pvt, sys_addr, &nid, &chan);
1609 1609
1610 if (csrow < 0) { 1610 if (csrow < 0) {
1611 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1611 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
1612 page, offset, syndrome, 1612 page, offset, syndrome,
1613 -1, -1, -1, 1613 -1, -1, -1,
1614 "failed to map error addr to a csrow", 1614 "failed to map error addr to a csrow",
@@ -1624,7 +1624,7 @@ static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
1624 if (dct_ganging_enabled(pvt)) 1624 if (dct_ganging_enabled(pvt))
1625 chan = get_channel_from_ecc_syndrome(mci, syndrome); 1625 chan = get_channel_from_ecc_syndrome(mci, syndrome);
1626 1626
1627 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1627 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
1628 page, offset, syndrome, 1628 page, offset, syndrome,
1629 csrow, chan, -1, 1629 csrow, chan, -1,
1630 "", ""); 1630 "", "");
@@ -1909,7 +1909,7 @@ static void amd64_handle_ce(struct mem_ctl_info *mci, struct mce *m)
1909 /* Ensure that the Error Address is VALID */ 1909 /* Ensure that the Error Address is VALID */
1910 if (!(m->status & MCI_STATUS_ADDRV)) { 1910 if (!(m->status & MCI_STATUS_ADDRV)) {
1911 amd64_mc_err(mci, "HW has no ERROR_ADDRESS available\n"); 1911 amd64_mc_err(mci, "HW has no ERROR_ADDRESS available\n");
1912 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1912 edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1,
1913 0, 0, 0, 1913 0, 0, 0,
1914 -1, -1, -1, 1914 -1, -1, -1,
1915 "HW has no ERROR_ADDRESS available", 1915 "HW has no ERROR_ADDRESS available",
@@ -1937,7 +1937,7 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m)
1937 1937
1938 if (!(m->status & MCI_STATUS_ADDRV)) { 1938 if (!(m->status & MCI_STATUS_ADDRV)) {
1939 amd64_mc_err(mci, "HW has no ERROR_ADDRESS available\n"); 1939 amd64_mc_err(mci, "HW has no ERROR_ADDRESS available\n");
1940 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1940 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
1941 0, 0, 0, 1941 0, 0, 0,
1942 -1, -1, -1, 1942 -1, -1, -1,
1943 "HW has no ERROR_ADDRESS available", 1943 "HW has no ERROR_ADDRESS available",
@@ -1956,7 +1956,7 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m)
1956 if (!src_mci) { 1956 if (!src_mci) {
1957 amd64_mc_err(mci, "ERROR ADDRESS (0x%lx) NOT mapped to a MC\n", 1957 amd64_mc_err(mci, "ERROR ADDRESS (0x%lx) NOT mapped to a MC\n",
1958 (unsigned long)sys_addr); 1958 (unsigned long)sys_addr);
1959 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1959 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
1960 page, offset, 0, 1960 page, offset, 0,
1961 -1, -1, -1, 1961 -1, -1, -1,
1962 "ERROR ADDRESS NOT mapped to a MC", 1962 "ERROR ADDRESS NOT mapped to a MC",
@@ -1970,13 +1970,13 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m)
1970 if (csrow < 0) { 1970 if (csrow < 0) {
1971 amd64_mc_err(mci, "ERROR_ADDRESS (0x%lx) NOT mapped to CS\n", 1971 amd64_mc_err(mci, "ERROR_ADDRESS (0x%lx) NOT mapped to CS\n",
1972 (unsigned long)sys_addr); 1972 (unsigned long)sys_addr);
1973 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1973 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
1974 page, offset, 0, 1974 page, offset, 0,
1975 -1, -1, -1, 1975 -1, -1, -1,
1976 "ERROR ADDRESS NOT mapped to CS", 1976 "ERROR ADDRESS NOT mapped to CS",
1977 ""); 1977 "");
1978 } else { 1978 } else {
1979 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1979 edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1,
1980 page, offset, 0, 1980 page, offset, 0,
1981 csrow, -1, -1, 1981 csrow, -1, -1,
1982 "", ""); 1982 "", "");