void
ev6_register_error_handlers(void)
{ /* None right now. */
}
int
ev6_process_logout_frame(struct el_common *mchk_header, int print)
{ struct el_common_EV6_mcheck *ev6mchk =
(struct el_common_EV6_mcheck *)mchk_header; int status = MCHK_DISPOSITION_UNKNOWN_ERROR;
status |= ev6_parse_ibox(ev6mchk->I_STAT, print);
status |= ev6_parse_mbox(ev6mchk->MM_STAT, ev6mchk->DC_STAT,
ev6mchk->C_STAT, print);
status |= ev6_parse_cbox(ev6mchk->C_ADDR, ev6mchk->DC1_SYNDROME,
ev6mchk->DC0_SYNDROME, ev6mchk->C_STAT,
ev6mchk->C_STS, print);
if (!print) return status;
if (status != MCHK_DISPOSITION_DISMISS) { char *saved_err_prefix = err_print_prefix;
/* * Dump some additional information from the frame
*/
printk("%s EXC_ADDR: 0x%016lx IER_CM: 0x%016lx" " ISUM: 0x%016lx\n" " PAL_BASE: 0x%016lx I_CTL: 0x%016lx" " PCTX: 0x%016lx\n",
err_print_prefix,
ev6mchk->EXC_ADDR, ev6mchk->IER_CM, ev6mchk->ISUM,
ev6mchk->PAL_BASE, ev6mchk->I_CTL, ev6mchk->PCTX);
if (status == MCHK_DISPOSITION_UNKNOWN_ERROR) {
printk("%s UNKNOWN error, frame follows:\n",
err_print_prefix);
} else { /* had decode -- downgrade print level for frame */
err_print_prefix = KERN_NOTICE;
}
/* * Parse the logout frame without printing first. If the only error(s) * found are have a disposition of "dismiss", then just dismiss them * and don't print any message
*/ if (ev6_process_logout_frame(mchk_header, 0) !=
MCHK_DISPOSITION_DISMISS) { char *saved_err_prefix = err_print_prefix;
err_print_prefix = KERN_CRIT;
/* * Either a nondismissable error was detected or no * recognized error was detected in the logout frame * -- report the error in either case
*/
printk("%s*CPU %s Error (Vector 0x%x) reported on CPU %d:\n",
err_print_prefix,
(vector == SCB_Q_PROCERR)?"Correctable":"Uncorrectable",
(unsignedint)vector, (int)smp_processor_id());
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.