提交 03f7eae8 编写于 作者: M Mauro Carvalho Chehab

edac: remove arch-specific parameter for the error handler

Remove the arch-dependent parameter, as it were not used,
as the MCE tracepoint weren't implemented. It probably doesn't
make sense to have an MCE-specific tracepoint, as this will
cost more bytes at the tracepoint, and tracepoint is not free.

The changes at the EDAC drivers were done by this small perl script:

	$file .=$_ while (<>);
	$file =~ s/(edac_mc_handle_error)\s*\(([^\;]+)\,([^\,\)]+)\s*\)/$1($2)/g;
	print $file;
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 075f3090
...@@ -1050,8 +1050,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, ...@@ -1050,8 +1050,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
page, offset, syndrome, page, offset, syndrome,
-1, -1, -1, -1, -1, -1,
"failed to map error addr to a node", "failed to map error addr to a node",
"", "");
NULL);
return; return;
} }
...@@ -1062,8 +1061,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, ...@@ -1062,8 +1061,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
page, offset, syndrome, page, offset, syndrome,
-1, -1, -1, -1, -1, -1,
"failed to map error addr to a csrow", "failed to map error addr to a csrow",
"", "");
NULL);
return; return;
} }
...@@ -1083,8 +1081,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, ...@@ -1083,8 +1081,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
page, offset, syndrome, page, offset, syndrome,
csrow, -1, -1, csrow, -1, -1,
"unknown syndrome - possible error reporting race", "unknown syndrome - possible error reporting race",
"", "");
NULL);
return; return;
} }
} else { } else {
...@@ -1102,7 +1099,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, ...@@ -1102,7 +1099,7 @@ static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, src_mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, src_mci,
page, offset, syndrome, page, offset, syndrome,
csrow, channel, -1, csrow, channel, -1,
"", "", NULL); "", "");
} }
static int ddr2_cs_size(unsigned i, bool dct_width) static int ddr2_cs_size(unsigned i, bool dct_width)
...@@ -1615,8 +1612,7 @@ static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, ...@@ -1615,8 +1612,7 @@ static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
page, offset, syndrome, page, offset, syndrome,
-1, -1, -1, -1, -1, -1,
"failed to map error addr to a csrow", "failed to map error addr to a csrow",
"", "");
NULL);
return; return;
} }
...@@ -1631,7 +1627,7 @@ static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, ...@@ -1631,7 +1627,7 @@ static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
page, offset, syndrome, page, offset, syndrome,
csrow, chan, -1, csrow, chan, -1,
"", "", NULL); "", "");
} }
/* /*
...@@ -1917,8 +1913,7 @@ static void amd64_handle_ce(struct mem_ctl_info *mci, struct mce *m) ...@@ -1917,8 +1913,7 @@ static void amd64_handle_ce(struct mem_ctl_info *mci, struct mce *m)
0, 0, 0, 0, 0, 0,
-1, -1, -1, -1, -1, -1,
"HW has no ERROR_ADDRESS available", "HW has no ERROR_ADDRESS available",
"", "");
NULL);
return; return;
} }
...@@ -1946,8 +1941,7 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m) ...@@ -1946,8 +1941,7 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m)
0, 0, 0, 0, 0, 0,
-1, -1, -1, -1, -1, -1,
"HW has no ERROR_ADDRESS available", "HW has no ERROR_ADDRESS available",
"", "");
NULL);
return; return;
} }
...@@ -1966,8 +1960,7 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m) ...@@ -1966,8 +1960,7 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m)
page, offset, 0, page, offset, 0,
-1, -1, -1, -1, -1, -1,
"ERROR ADDRESS NOT mapped to a MC", "ERROR ADDRESS NOT mapped to a MC",
"", "");
NULL);
return; return;
} }
...@@ -1981,13 +1974,12 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m) ...@@ -1981,13 +1974,12 @@ static void amd64_handle_ue(struct mem_ctl_info *mci, struct mce *m)
page, offset, 0, page, offset, 0,
-1, -1, -1, -1, -1, -1,
"ERROR ADDRESS NOT mapped to CS", "ERROR ADDRESS NOT mapped to CS",
"", "");
NULL);
} else { } else {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
page, offset, 0, page, offset, 0,
csrow, -1, -1, csrow, -1, -1,
"", "", NULL); "", "");
} }
} }
......
...@@ -148,7 +148,7 @@ static int amd76x_process_error_info(struct mem_ctl_info *mci, ...@@ -148,7 +148,7 @@ static int amd76x_process_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
mci->csrows[row]->first_page, 0, 0, mci->csrows[row]->first_page, 0, 0,
row, 0, -1, row, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
} }
} }
...@@ -163,7 +163,7 @@ static int amd76x_process_error_info(struct mem_ctl_info *mci, ...@@ -163,7 +163,7 @@ static int amd76x_process_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
mci->csrows[row]->first_page, 0, 0, mci->csrows[row]->first_page, 0, 0,
row, 0, -1, row, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
} }
} }
......
...@@ -50,7 +50,7 @@ static void cell_edac_count_ce(struct mem_ctl_info *mci, int chan, u64 ar) ...@@ -50,7 +50,7 @@ static void cell_edac_count_ce(struct mem_ctl_info *mci, int chan, u64 ar)
/* TODO: Decoding of the error address */ /* TODO: Decoding of the error address */
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
csrow->first_page + pfn, offset, syndrome, csrow->first_page + pfn, offset, syndrome,
0, chan, -1, "", "", NULL); 0, chan, -1, "", "");
} }
static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar) static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar)
...@@ -72,7 +72,7 @@ static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar) ...@@ -72,7 +72,7 @@ static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar)
/* TODO: Decoding of the error address */ /* TODO: Decoding of the error address */
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
csrow->first_page + pfn, offset, 0, csrow->first_page + pfn, offset, 0,
0, chan, -1, "", "", NULL); 0, chan, -1, "", "");
} }
static void cell_edac_check(struct mem_ctl_info *mci) static void cell_edac_check(struct mem_ctl_info *mci)
......
...@@ -557,7 +557,7 @@ static void cpc925_mc_check(struct mem_ctl_info *mci) ...@@ -557,7 +557,7 @@ static void cpc925_mc_check(struct mem_ctl_info *mci)
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
pfn, offset, syndrome, pfn, offset, syndrome,
csrow, channel, -1, csrow, channel, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
} }
if (apiexcp & UECC_EXCP_DETECTED) { if (apiexcp & UECC_EXCP_DETECTED) {
...@@ -565,7 +565,7 @@ static void cpc925_mc_check(struct mem_ctl_info *mci) ...@@ -565,7 +565,7 @@ static void cpc925_mc_check(struct mem_ctl_info *mci)
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
pfn, offset, 0, pfn, offset, 0,
csrow, -1, -1, csrow, -1, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
} }
cpc925_mc_printk(mci, KERN_INFO, "Dump registers:\n"); cpc925_mc_printk(mci, KERN_INFO, "Dump registers:\n");
......
...@@ -374,7 +374,7 @@ static void do_process_ce(struct mem_ctl_info *mci, u16 error_one, ...@@ -374,7 +374,7 @@ static void do_process_ce(struct mem_ctl_info *mci, u16 error_one,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
page, offset_in_page(sec1_add << 4), sec1_syndrome, page, offset_in_page(sec1_add << 4), sec1_syndrome,
row, channel, -1, row, channel, -1,
"e752x CE", "", NULL); "e752x CE", "");
} }
static inline void process_ce(struct mem_ctl_info *mci, u16 error_one, static inline void process_ce(struct mem_ctl_info *mci, u16 error_one,
...@@ -412,7 +412,7 @@ static void do_process_ue(struct mem_ctl_info *mci, u16 error_one, ...@@ -412,7 +412,7 @@ static void do_process_ue(struct mem_ctl_info *mci, u16 error_one,
block_page, block_page,
offset_in_page(error_2b << 4), 0, offset_in_page(error_2b << 4), 0,
row, -1, -1, row, -1, -1,
"e752x UE from Read", "", NULL); "e752x UE from Read", "");
} }
if (error_one & 0x0404) { if (error_one & 0x0404) {
...@@ -431,7 +431,7 @@ static void do_process_ue(struct mem_ctl_info *mci, u16 error_one, ...@@ -431,7 +431,7 @@ static void do_process_ue(struct mem_ctl_info *mci, u16 error_one,
block_page, block_page,
offset_in_page(error_2b << 4), 0, offset_in_page(error_2b << 4), 0,
row, -1, -1, row, -1, -1,
"e752x UE from Scruber", "", NULL); "e752x UE from Scruber", "");
} }
} }
...@@ -456,7 +456,7 @@ static inline void process_ue_no_info_wr(struct mem_ctl_info *mci, ...@@ -456,7 +456,7 @@ static inline void process_ue_no_info_wr(struct mem_ctl_info *mci,
edac_dbg(3, "\n"); edac_dbg(3, "\n");
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0,
-1, -1, -1, -1, -1, -1,
"e752x UE log memory write", "", NULL); "e752x UE log memory write", "");
} }
static void do_process_ded_retry(struct mem_ctl_info *mci, u16 error, static void do_process_ded_retry(struct mem_ctl_info *mci, u16 error,
......
...@@ -220,14 +220,14 @@ static void process_ce(struct mem_ctl_info *mci, struct e7xxx_error_info *info) ...@@ -220,14 +220,14 @@ static void process_ce(struct mem_ctl_info *mci, struct e7xxx_error_info *info)
/* convert syndrome to channel */ /* convert syndrome to channel */
channel = e7xxx_find_channel(syndrome); channel = e7xxx_find_channel(syndrome);
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, page, 0, syndrome, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, page, 0, syndrome,
row, channel, -1, "e7xxx CE", "", NULL); row, channel, -1, "e7xxx CE", "");
} }
static void process_ce_no_info(struct mem_ctl_info *mci) static void process_ce_no_info(struct mem_ctl_info *mci)
{ {
edac_dbg(3, "\n"); edac_dbg(3, "\n");
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, -1, -1, -1, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, -1, -1, -1,
"e7xxx CE log register overflow", "", NULL); "e7xxx CE log register overflow", "");
} }
static void process_ue(struct mem_ctl_info *mci, struct e7xxx_error_info *info) static void process_ue(struct mem_ctl_info *mci, struct e7xxx_error_info *info)
...@@ -243,7 +243,7 @@ static void process_ue(struct mem_ctl_info *mci, struct e7xxx_error_info *info) ...@@ -243,7 +243,7 @@ static void process_ue(struct mem_ctl_info *mci, struct e7xxx_error_info *info)
row = edac_mc_find_csrow_by_page(mci, block_page); row = edac_mc_find_csrow_by_page(mci, block_page);
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, block_page, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, block_page, 0, 0,
row, -1, -1, "e7xxx UE", "", NULL); row, -1, -1, "e7xxx UE", "");
} }
static void process_ue_no_info(struct mem_ctl_info *mci) static void process_ue_no_info(struct mem_ctl_info *mci)
...@@ -251,7 +251,7 @@ static void process_ue_no_info(struct mem_ctl_info *mci) ...@@ -251,7 +251,7 @@ static void process_ue_no_info(struct mem_ctl_info *mci)
edac_dbg(3, "\n"); edac_dbg(3, "\n");
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, -1, -1, -1, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, -1, -1, -1,
"e7xxx UE log register overflow", "", NULL); "e7xxx UE log register overflow", "");
} }
static void e7xxx_get_error_info(struct mem_ctl_info *mci, static void e7xxx_get_error_info(struct mem_ctl_info *mci,
......
...@@ -462,8 +462,7 @@ void edac_mc_handle_error(const enum hw_event_mc_err_type type, ...@@ -462,8 +462,7 @@ void edac_mc_handle_error(const enum hw_event_mc_err_type type,
const int mid_layer, const int mid_layer,
const int low_layer, const int low_layer,
const char *msg, const char *msg,
const char *other_detail, const char *other_detail);
const void *arch_log);
/* /*
* edac_device APIs * edac_device APIs
......
...@@ -1044,9 +1044,6 @@ static void edac_ue_error(struct mem_ctl_info *mci, ...@@ -1044,9 +1044,6 @@ static void edac_ue_error(struct mem_ctl_info *mci,
* @other_detail: Technical details about the event that * @other_detail: Technical details about the event that
* may help hardware manufacturers and * may help hardware manufacturers and
* EDAC developers to analyse the event * EDAC developers to analyse the event
* @arch_log: Architecture-specific struct that can
* be used to add extended information to the
* tracepoint, like dumping MCE registers.
*/ */
void edac_mc_handle_error(const enum hw_event_mc_err_type type, void edac_mc_handle_error(const enum hw_event_mc_err_type type,
struct mem_ctl_info *mci, struct mem_ctl_info *mci,
...@@ -1057,8 +1054,7 @@ void edac_mc_handle_error(const enum hw_event_mc_err_type type, ...@@ -1057,8 +1054,7 @@ void edac_mc_handle_error(const enum hw_event_mc_err_type type,
const int mid_layer, const int mid_layer,
const int low_layer, const int low_layer,
const char *msg, const char *msg,
const char *other_detail, const char *other_detail)
const void *arch_log)
{ {
/* FIXME: too much for stack: move it to some pre-alocated area */ /* FIXME: too much for stack: move it to some pre-alocated area */
char detail[80], location[80]; char detail[80], location[80];
......
...@@ -827,7 +827,7 @@ static ssize_t edac_fake_inject_write(struct file *file, ...@@ -827,7 +827,7 @@ static ssize_t edac_fake_inject_write(struct file *file,
mci->fake_inject_layer[0], mci->fake_inject_layer[0],
mci->fake_inject_layer[1], mci->fake_inject_layer[1],
mci->fake_inject_layer[2], mci->fake_inject_layer[2],
"FAKE ERROR", "for EDAC testing only", NULL); "FAKE ERROR", "for EDAC testing only");
return count; return count;
} }
......
...@@ -247,7 +247,7 @@ static int i3000_process_error_info(struct mem_ctl_info *mci, ...@@ -247,7 +247,7 @@ static int i3000_process_error_info(struct mem_ctl_info *mci,
if ((info->errsts ^ info->errsts2) & I3000_ERRSTS_BITS) { if ((info->errsts ^ info->errsts2) & I3000_ERRSTS_BITS) {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0,
-1, -1, -1, -1, -1, -1,
"UE overwrote CE", "", NULL); "UE overwrote CE", "");
info->errsts = info->errsts2; info->errsts = info->errsts2;
} }
...@@ -261,12 +261,12 @@ static int i3000_process_error_info(struct mem_ctl_info *mci, ...@@ -261,12 +261,12 @@ static int i3000_process_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
pfn, offset, 0, pfn, offset, 0,
row, -1, -1, row, -1, -1,
"i3000 UE", "", NULL); "i3000 UE", "");
else else
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
pfn, offset, info->derrsyn, pfn, offset, info->derrsyn,
row, multi_chan ? channel : 0, -1, row, multi_chan ? channel : 0, -1,
"i3000 CE", "", NULL); "i3000 CE", "");
return 1; return 1;
} }
......
...@@ -219,7 +219,7 @@ static void i3200_process_error_info(struct mem_ctl_info *mci, ...@@ -219,7 +219,7 @@ static void i3200_process_error_info(struct mem_ctl_info *mci,
if ((info->errsts ^ info->errsts2) & I3200_ERRSTS_BITS) { if ((info->errsts ^ info->errsts2) & I3200_ERRSTS_BITS) {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0,
-1, -1, -1, "UE overwrote CE", "", NULL); -1, -1, -1, "UE overwrote CE", "");
info->errsts = info->errsts2; info->errsts = info->errsts2;
} }
...@@ -230,13 +230,13 @@ static void i3200_process_error_info(struct mem_ctl_info *mci, ...@@ -230,13 +230,13 @@ static void i3200_process_error_info(struct mem_ctl_info *mci,
0, 0, 0, 0, 0, 0,
eccerrlog_row(channel, log), eccerrlog_row(channel, log),
-1, -1, -1, -1,
"i3000 UE", "", NULL); "i3000 UE", "");
} else if (log & I3200_ECCERRLOG_CE) { } else if (log & I3200_ECCERRLOG_CE) {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
0, 0, eccerrlog_syndrome(log), 0, 0, eccerrlog_syndrome(log),
eccerrlog_row(channel, log), eccerrlog_row(channel, log),
-1, -1, -1, -1,
"i3000 UE", "", NULL); "i3000 UE", "");
} }
} }
} }
......
...@@ -522,7 +522,7 @@ static void i5000_process_fatal_error_info(struct mem_ctl_info *mci, ...@@ -522,7 +522,7 @@ static void i5000_process_fatal_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_FATAL, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_FATAL, mci, 0, 0, 0,
channel >> 1, channel & 1, rank, channel >> 1, channel & 1, rank,
rdwr ? "Write error" : "Read error", rdwr ? "Write error" : "Read error",
msg, NULL); msg);
} }
/* /*
...@@ -621,7 +621,7 @@ static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci, ...@@ -621,7 +621,7 @@ static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0,
channel >> 1, -1, rank, channel >> 1, -1, rank,
rdwr ? "Write error" : "Read error", rdwr ? "Write error" : "Read error",
msg, NULL); msg);
} }
/* Check correctable errors */ /* Check correctable errors */
...@@ -675,7 +675,7 @@ static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci, ...@@ -675,7 +675,7 @@ static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 0, 0, 0,
channel >> 1, channel % 2, rank, channel >> 1, channel % 2, rank,
rdwr ? "Write error" : "Read error", rdwr ? "Write error" : "Read error",
msg, NULL); msg);
} }
if (!misc_messages) if (!misc_messages)
...@@ -720,7 +720,7 @@ static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci, ...@@ -720,7 +720,7 @@ static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci,
/* Call the helper to output message */ /* Call the helper to output message */
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 0, 0, 0,
branch >> 1, -1, -1, branch >> 1, -1, -1,
"Misc error", msg, NULL); "Misc error", msg);
} }
} }
......
...@@ -434,7 +434,7 @@ static void i5100_handle_ce(struct mem_ctl_info *mci, ...@@ -434,7 +434,7 @@ static void i5100_handle_ce(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
0, 0, syndrome, 0, 0, syndrome,
chan, rank, -1, chan, rank, -1,
msg, detail, NULL); msg, detail);
} }
static void i5100_handle_ue(struct mem_ctl_info *mci, static void i5100_handle_ue(struct mem_ctl_info *mci,
...@@ -456,7 +456,7 @@ static void i5100_handle_ue(struct mem_ctl_info *mci, ...@@ -456,7 +456,7 @@ static void i5100_handle_ue(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
0, 0, syndrome, 0, 0, syndrome,
chan, rank, -1, chan, rank, -1,
msg, detail, NULL); msg, detail);
} }
static void i5100_read_log(struct mem_ctl_info *mci, int chan, static void i5100_read_log(struct mem_ctl_info *mci, int chan,
......
...@@ -557,7 +557,7 @@ static void i5400_proccess_non_recoverable_info(struct mem_ctl_info *mci, ...@@ -557,7 +557,7 @@ static void i5400_proccess_non_recoverable_info(struct mem_ctl_info *mci,
edac_mc_handle_error(tp_event, mci, 0, 0, 0, edac_mc_handle_error(tp_event, mci, 0, 0, 0,
branch >> 1, -1, rank, branch >> 1, -1, rank,
rdwr ? "Write error" : "Read error", rdwr ? "Write error" : "Read error",
msg, NULL); msg);
} }
/* /*
...@@ -629,7 +629,7 @@ static void i5400_process_nonfatal_error_info(struct mem_ctl_info *mci, ...@@ -629,7 +629,7 @@ static void i5400_process_nonfatal_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 0, 0, 0,
branch >> 1, channel % 2, rank, branch >> 1, channel % 2, rank,
rdwr ? "Write error" : "Read error", rdwr ? "Write error" : "Read error",
msg, NULL); msg);
return; return;
} }
......
...@@ -452,7 +452,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci) ...@@ -452,7 +452,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
edac_mc_handle_error(HW_EVENT_ERR_FATAL, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_FATAL, mci, 0, 0, 0,
branch, -1, rank, branch, -1, rank,
is_wr ? "Write error" : "Read error", is_wr ? "Write error" : "Read error",
pvt->tmp_prt_buffer, NULL); pvt->tmp_prt_buffer);
} }
...@@ -499,7 +499,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci) ...@@ -499,7 +499,7 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
syndrome, syndrome,
branch >> 1, channel % 2, rank, branch >> 1, channel % 2, rank,
is_wr ? "Write error" : "Read error", is_wr ? "Write error" : "Read error",
pvt->tmp_prt_buffer, NULL); pvt->tmp_prt_buffer);
} }
return; return;
} }
......
...@@ -1545,7 +1545,7 @@ static void i7core_rdimm_update_errcount(struct mem_ctl_info *mci, ...@@ -1545,7 +1545,7 @@ static void i7core_rdimm_update_errcount(struct mem_ctl_info *mci,
for (i = 0; i < add; i++) { for (i = 0; i < add; i++) {
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 0, 0, 0,
chan, dimm, -1, "error", "", NULL); chan, dimm, -1, "error", "");
} }
} }
...@@ -1801,7 +1801,7 @@ static void i7core_mce_output_error(struct mem_ctl_info *mci, ...@@ -1801,7 +1801,7 @@ static void i7core_mce_output_error(struct mem_ctl_info *mci,
m->addr & ~PAGE_MASK, m->addr & ~PAGE_MASK,
syndrome, syndrome,
channel, dimm, -1, channel, dimm, -1,
err, msg, m); err, msg);
} }
/* /*
......
...@@ -159,7 +159,7 @@ static int i82443bxgx_edacmc_process_error_info(struct mem_ctl_info *mci, ...@@ -159,7 +159,7 @@ static int i82443bxgx_edacmc_process_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
page, pageoffset, 0, page, pageoffset, 0,
edac_mc_find_csrow_by_page(mci, page), edac_mc_find_csrow_by_page(mci, page),
0, -1, mci->ctl_name, "", NULL); 0, -1, mci->ctl_name, "");
} }
if (info->eap & I82443BXGX_EAP_OFFSET_MBE) { if (info->eap & I82443BXGX_EAP_OFFSET_MBE) {
...@@ -168,7 +168,7 @@ static int i82443bxgx_edacmc_process_error_info(struct mem_ctl_info *mci, ...@@ -168,7 +168,7 @@ static int i82443bxgx_edacmc_process_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
page, pageoffset, 0, page, pageoffset, 0,
edac_mc_find_csrow_by_page(mci, page), edac_mc_find_csrow_by_page(mci, page),
0, -1, mci->ctl_name, "", NULL); 0, -1, mci->ctl_name, "");
} }
return error_found; return error_found;
......
...@@ -110,7 +110,7 @@ static int i82860_process_error_info(struct mem_ctl_info *mci, ...@@ -110,7 +110,7 @@ static int i82860_process_error_info(struct mem_ctl_info *mci,
if ((info->errsts ^ info->errsts2) & 0x0003) { if ((info->errsts ^ info->errsts2) & 0x0003) {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0,
-1, -1, -1, "UE overwrote CE", "", NULL); -1, -1, -1, "UE overwrote CE", "");
info->errsts = info->errsts2; info->errsts = info->errsts2;
} }
...@@ -122,12 +122,12 @@ static int i82860_process_error_info(struct mem_ctl_info *mci, ...@@ -122,12 +122,12 @@ static int i82860_process_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
info->eap, 0, 0, info->eap, 0, 0,
dimm->location[0], dimm->location[1], -1, dimm->location[0], dimm->location[1], -1,
"i82860 UE", "", NULL); "i82860 UE", "");
else else
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
info->eap, 0, info->derrsyn, info->eap, 0, info->derrsyn,
dimm->location[0], dimm->location[1], -1, dimm->location[0], dimm->location[1], -1,
"i82860 CE", "", NULL); "i82860 CE", "");
return 1; return 1;
} }
......
...@@ -238,7 +238,7 @@ static int i82875p_process_error_info(struct mem_ctl_info *mci, ...@@ -238,7 +238,7 @@ static int i82875p_process_error_info(struct mem_ctl_info *mci,
if ((info->errsts ^ info->errsts2) & 0x0081) { if ((info->errsts ^ info->errsts2) & 0x0081) {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0,
-1, -1, -1, -1, -1, -1,
"UE overwrote CE", "", NULL); "UE overwrote CE", "");
info->errsts = info->errsts2; info->errsts = info->errsts2;
} }
...@@ -249,12 +249,12 @@ static int i82875p_process_error_info(struct mem_ctl_info *mci, ...@@ -249,12 +249,12 @@ static int i82875p_process_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
info->eap, 0, 0, info->eap, 0, 0,
row, -1, -1, row, -1, -1,
"i82875p UE", "", NULL); "i82875p UE", "");
else else
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
info->eap, 0, info->derrsyn, info->eap, 0, info->derrsyn,
row, multi_chan ? (info->des & 0x1) : 0, row, multi_chan ? (info->des & 0x1) : 0,
-1, "i82875p CE", "", NULL); -1, "i82875p CE", "");
return 1; return 1;
} }
......
...@@ -289,7 +289,7 @@ static int i82975x_process_error_info(struct mem_ctl_info *mci, ...@@ -289,7 +289,7 @@ static int i82975x_process_error_info(struct mem_ctl_info *mci,
if ((info->errsts ^ info->errsts2) & 0x0003) { if ((info->errsts ^ info->errsts2) & 0x0003) {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0,
-1, -1, -1, "UE overwrote CE", "", NULL); -1, -1, -1, "UE overwrote CE", "");
info->errsts = info->errsts2; info->errsts = info->errsts2;
} }
...@@ -317,12 +317,12 @@ static int i82975x_process_error_info(struct mem_ctl_info *mci, ...@@ -317,12 +317,12 @@ static int i82975x_process_error_info(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
page, offst, 0, page, offst, 0,
row, -1, -1, row, -1, -1,
"i82975x UE", "", NULL); "i82975x UE", "");
else else
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
page, offst, info->derrsyn, page, offst, info->derrsyn,
row, chan ? chan : 0, -1, row, chan ? chan : 0, -1,
"i82975x CE", "", NULL); "i82975x CE", "");
return 1; return 1;
} }
......
...@@ -869,13 +869,13 @@ static void mpc85xx_mc_check(struct mem_ctl_info *mci) ...@@ -869,13 +869,13 @@ static void mpc85xx_mc_check(struct mem_ctl_info *mci)
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
pfn, err_addr & ~PAGE_MASK, syndrome, pfn, err_addr & ~PAGE_MASK, syndrome,
row_index, 0, -1, row_index, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
if (err_detect & DDR_EDE_MBE) if (err_detect & DDR_EDE_MBE)
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
pfn, err_addr & ~PAGE_MASK, syndrome, pfn, err_addr & ~PAGE_MASK, syndrome,
row_index, 0, -1, row_index, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
out_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT, err_detect); out_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DETECT, err_detect);
} }
......
...@@ -615,13 +615,13 @@ static void mv64x60_mc_check(struct mem_ctl_info *mci) ...@@ -615,13 +615,13 @@ static void mv64x60_mc_check(struct mem_ctl_info *mci)
err_addr >> PAGE_SHIFT, err_addr >> PAGE_SHIFT,
err_addr & PAGE_MASK, syndrome, err_addr & PAGE_MASK, syndrome,
0, 0, -1, 0, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
else /* 2 bit error, UE */ else /* 2 bit error, UE */
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
err_addr >> PAGE_SHIFT, err_addr >> PAGE_SHIFT,
err_addr & PAGE_MASK, 0, err_addr & PAGE_MASK, 0,
0, 0, -1, 0, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
/* clear the error */ /* clear the error */
out_le32(pdata->mc_vbase + MV64X60_SDRAM_ERR_ADDR, 0); out_le32(pdata->mc_vbase + MV64X60_SDRAM_ERR_ADDR, 0);
......
...@@ -112,14 +112,14 @@ static void pasemi_edac_process_error_info(struct mem_ctl_info *mci, u32 errsta) ...@@ -112,14 +112,14 @@ static void pasemi_edac_process_error_info(struct mem_ctl_info *mci, u32 errsta)
MCDEBUG_ERRSTA_RFL_STATUS)) { MCDEBUG_ERRSTA_RFL_STATUS)) {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
mci->csrows[cs]->first_page, 0, 0, mci->csrows[cs]->first_page, 0, 0,
cs, 0, -1, mci->ctl_name, "", NULL); cs, 0, -1, mci->ctl_name, "");
} }
/* correctable/single-bit errors */ /* correctable/single-bit errors */
if (errsta & MCDEBUG_ERRSTA_SBE_STATUS) if (errsta & MCDEBUG_ERRSTA_SBE_STATUS)
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
mci->csrows[cs]->first_page, 0, 0, mci->csrows[cs]->first_page, 0, 0,
cs, 0, -1, mci->ctl_name, "", NULL); cs, 0, -1, mci->ctl_name, "");
} }
static void pasemi_edac_check(struct mem_ctl_info *mci) static void pasemi_edac_check(struct mem_ctl_info *mci)
......
...@@ -730,7 +730,7 @@ ppc4xx_edac_handle_ce(struct mem_ctl_info *mci, ...@@ -730,7 +730,7 @@ ppc4xx_edac_handle_ce(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
0, 0, 0, 0, 0, 0,
row, 0, -1, row, 0, -1,
message, "", NULL); message, "");
} }
/** /**
...@@ -761,7 +761,7 @@ ppc4xx_edac_handle_ue(struct mem_ctl_info *mci, ...@@ -761,7 +761,7 @@ ppc4xx_edac_handle_ue(struct mem_ctl_info *mci,
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci,
page, offset, 0, page, offset, 0,
row, 0, -1, row, 0, -1,
message, "", NULL); message, "");
} }
/** /**
......
...@@ -183,7 +183,7 @@ static int r82600_process_error_info(struct mem_ctl_info *mci, ...@@ -183,7 +183,7 @@ static int r82600_process_error_info(struct mem_ctl_info *mci,
page, 0, syndrome, page, 0, syndrome,
edac_mc_find_csrow_by_page(mci, page), edac_mc_find_csrow_by_page(mci, page),
0, -1, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
} }
if (info->eapr & BIT(1)) { /* UE? */ if (info->eapr & BIT(1)) { /* UE? */
...@@ -195,7 +195,7 @@ static int r82600_process_error_info(struct mem_ctl_info *mci, ...@@ -195,7 +195,7 @@ static int r82600_process_error_info(struct mem_ctl_info *mci,
page, 0, 0, page, 0, 0,
edac_mc_find_csrow_by_page(mci, page), edac_mc_find_csrow_by_page(mci, page),
0, -1, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
} }
return error_found; return error_found;
......
...@@ -1450,12 +1450,12 @@ static void sbridge_mce_output_error(struct mem_ctl_info *mci, ...@@ -1450,12 +1450,12 @@ static void sbridge_mce_output_error(struct mem_ctl_info *mci,
edac_mc_handle_error(tp_event, mci, edac_mc_handle_error(tp_event, mci,
m->addr >> PAGE_SHIFT, m->addr & ~PAGE_MASK, 0, m->addr >> PAGE_SHIFT, m->addr & ~PAGE_MASK, 0,
channel, dimm, -1, channel, dimm, -1,
optype, msg, m); optype, msg);
return; return;
err_parsing: err_parsing:
edac_mc_handle_error(tp_event, mci, 0, 0, 0, edac_mc_handle_error(tp_event, mci, 0, 0, 0,
-1, -1, -1, -1, -1, -1,
msg, "", m); msg, "");
} }
......
...@@ -74,7 +74,7 @@ static void tile_edac_check(struct mem_ctl_info *mci) ...@@ -74,7 +74,7 @@ static void tile_edac_check(struct mem_ctl_info *mci)
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
0, 0, 0, 0, 0, 0,
0, 0, -1, 0, 0, -1,
mci->ctl_name, "", NULL); mci->ctl_name, "");
} }
} }
......
...@@ -217,7 +217,7 @@ static void x38_process_error_info(struct mem_ctl_info *mci, ...@@ -217,7 +217,7 @@ static void x38_process_error_info(struct mem_ctl_info *mci,
if ((info->errsts ^ info->errsts2) & X38_ERRSTS_BITS) { if ((info->errsts ^ info->errsts2) & X38_ERRSTS_BITS) {
edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0, edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 0, 0, 0,
-1, -1, -1, -1, -1, -1,
"UE overwrote CE", "", NULL); "UE overwrote CE", "");
info->errsts = info->errsts2; info->errsts = info->errsts2;
} }
...@@ -228,13 +228,13 @@ static void x38_process_error_info(struct mem_ctl_info *mci, ...@@ -228,13 +228,13 @@ static void x38_process_error_info(struct mem_ctl_info *mci,
0, 0, 0, 0, 0, 0,
eccerrlog_row(channel, log), eccerrlog_row(channel, log),
-1, -1, -1, -1,
"x38 UE", "", NULL); "x38 UE", "");
} else if (log & X38_ECCERRLOG_CE) { } else if (log & X38_ECCERRLOG_CE) {
edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci,
0, 0, eccerrlog_syndrome(log), 0, 0, eccerrlog_syndrome(log),
eccerrlog_row(channel, log), eccerrlog_row(channel, log),
-1, -1, -1, -1,
"x38 CE", "", NULL); "x38 CE", "");
} }
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册