Lines Matching refs:aflt

1035 	struct async_flt *aflt = (struct async_flt *)flt;
1041 if (aflt->flt_status == OPL_ECC_URGENT_TRAP)
1062 ASSERT(aflt->flt_in_memory);
1074 if (!panicstr && aflt->flt_prot == AFLT_PROT_EC &&
1075 page_retire_check(aflt->flt_addr, NULL) == 0) {
1080 softcall(ecc_page_zero, (void *)aflt->flt_addr);
1110 opl_flt->flt_eid_sid = aflt->flt_inst;
1118 opl_flt->flt_eid_sid = aflt->flt_inst;
1134 struct async_flt *aflt = (struct async_flt *)opl_flt;
1135 (void) page_retire(aflt->flt_addr, PR_UE);
1170 cpu_ue_log_err(struct async_flt *aflt)
1172 switch (aflt->flt_class) {
1174 if (cpu_sync_log_err(aflt))
1175 cpu_ereport_post(aflt);
1179 bus_async_log_err(aflt);
1184 "fault class (0x%x)", (void *)aflt, aflt->flt_class);
1235 cpu_get_mem_unum_aflt(int synd_status, struct async_flt *aflt,
1242 return (cpu_get_mem_unum(synd_status, aflt->flt_synd,
1244 aflt->flt_addr, aflt->flt_bus_id, aflt->flt_in_memory,
1245 aflt->flt_status, buf, buflen, lenp));
1356 flt_to_trap_type(struct async_flt *aflt)
1358 if (aflt->flt_status & OPL_ECC_ISYNC_TRAP)
1360 if (aflt->flt_status & OPL_ECC_DSYNC_TRAP)
1362 if (aflt->flt_status & OPL_ECC_URGENT_TRAP)
1373 cpu_payload_add_aflt(struct async_flt *aflt, nvlist_t *payload,
1376 opl_async_flt_t *opl_flt = (opl_async_flt_t *)aflt;
1382 if (aflt->flt_payload & FM_EREPORT_PAYLOAD_FLAG_SFSR) {
1384 DATA_TYPE_UINT64, aflt->flt_stat, NULL);
1386 if (aflt->flt_payload & FM_EREPORT_PAYLOAD_FLAG_SFAR) {
1388 DATA_TYPE_UINT64, aflt->flt_addr, NULL);
1390 if (aflt->flt_payload & FM_EREPORT_PAYLOAD_FLAG_UGESR) {
1392 DATA_TYPE_UINT64, aflt->flt_stat, NULL);
1394 if (aflt->flt_payload & FM_EREPORT_PAYLOAD_FLAG_PC) {
1396 DATA_TYPE_UINT64, (uint64_t)aflt->flt_pc, NULL);
1398 if (aflt->flt_payload & FM_EREPORT_PAYLOAD_FLAG_TL) {
1400 DATA_TYPE_UINT8, (uint8_t)aflt->flt_tl, NULL);
1402 if (aflt->flt_payload & FM_EREPORT_PAYLOAD_FLAG_TT) {
1404 DATA_TYPE_UINT8, flt_to_trap_type(aflt), NULL);
1406 if (aflt->flt_payload & FM_EREPORT_PAYLOAD_FLAG_PRIV) {
1409 (aflt->flt_priv ? B_TRUE : B_FALSE), NULL);
1411 if (aflt->flt_payload & FM_EREPORT_PAYLOAD_FLAG_FLT_STATUS) {
1413 DATA_TYPE_UINT64, (uint64_t)aflt->flt_status, NULL);
1436 (void) cpu_get_mem_unum_aflt(0, aflt, unum, UNUM_NAMLEN, &len);
1461 struct async_flt *aflt = (struct async_flt *)opl_flt;
1463 if (aflt->flt_status & (OPL_ECC_SYNC_TRAP)) {
1465 pf_is_memory(aflt->flt_addr >> MMU_PAGESHIFT));
1505 cpu_ereport_post(struct async_flt *aflt)
1513 if (aflt->flt_panic || panicstr) {
1528 switch (cpunodes[aflt->flt_inst].implementation) {
1540 (u_longlong_t)cpunodes[aflt->flt_inst].device_id);
1542 aflt->flt_inst, (uint8_t *)&cpunodes[aflt->flt_inst].version,
1549 FM_ERROR_CPU, cpu_type, aflt->flt_erpt_class);
1552 fm_ena_generate(aflt->flt_id, FM_ENA_FMT1), detector, NULL);
1558 cpu_payload_add_aflt(aflt, ereport, resource);
1560 if (aflt->flt_panic || panicstr) {
1571 cpu_run_bus_error_handlers(struct async_flt *aflt, int expected)
1579 de.fme_ena = fm_ena_generate(aflt->flt_id, FM_ENA_FMT1);
1581 de.fme_bus_specific = (void *)aflt->flt_addr;
1583 if ((aflt->flt_prot == AFLT_PROT_NONE) && (status == DDI_FM_FATAL))
1584 aflt->flt_panic = 1;
1591 struct async_flt *aflt = (struct async_flt *)payload;
1593 aflt->flt_erpt_class = error_class;
1778 struct async_flt *aflt = (struct async_flt *)opl_flt;
1787 aflt->flt_in_memory = cpu_flt_in_memory(opl_flt, opl_flt->flt_bit);
1788 aflt->flt_payload = eccp->ec_err_payload;
1790 ASSERT(aflt->flt_status & (OPL_ECC_SYNC_TRAP|OPL_ECC_URGENT_TRAP));
1792 sizeof (opl_async_flt_t), ue_queue, aflt->flt_panic);
1802 struct async_flt *aflt = (struct async_flt *)opl_flt;
1813 (eccp->ec_flags & aflt->flt_status) != 0) {
1823 opl_flt->flt_eid_mod = (aflt->flt_stat &
1825 opl_flt->flt_eid_sid = (aflt->flt_stat &
1913 struct async_flt *aflt;
1936 aflt = (struct async_flt *)&opl_flt;
1937 aflt->flt_id = gethrtime_waitfree();
1938 aflt->flt_bus_id = getprocessorid();
1939 aflt->flt_inst = CPU->cpu_id;
1940 aflt->flt_stat = t_sfsr;
1941 aflt->flt_addr = t_sfar;
1942 aflt->flt_pc = (caddr_t)rp->r_pc;
1943 aflt->flt_prot = (uchar_t)AFLT_PROT_NONE;
1944 aflt->flt_class = (uchar_t)CPU_FAULT;
1945 aflt->flt_priv = (uchar_t)(tl == 1 ? 1 : ((rp->r_tstate &
1947 aflt->flt_tl = (uchar_t)tl;
1948 aflt->flt_panic = (uchar_t)(tl != 0 || aft_testfatal != 0 ||
1950 aflt->flt_core = (pflag & SDOCORE) ? 1 : 0;
1951 aflt->flt_status = (derr) ? OPL_ECC_DSYNC_TRAP : OPL_ECC_ISYNC_TRAP;
1961 aflt->flt_panic = 1;
1962 aflt->flt_payload = FM_EREPORT_PAYLOAD_SYNC;
1964 sizeof (opl_async_flt_t), ue_queue, aflt->flt_panic);
1972 * aflt->flt_stat keeps the original bits as a reference.
1985 if (!aflt->flt_panic && aflt->flt_priv && tl == 0) {
1990 aflt->flt_prot = (uchar_t)AFLT_PROT_EC;
1999 aflt->flt_prot = (uchar_t)AFLT_PROT_ACCESS;
2016 aflt->flt_prot = AFLT_PROT_COPY;
2033 if (!aflt->flt_priv || aflt->flt_prot == AFLT_PROT_COPY) {
2035 aflt->flt_panic |= aft_panic;
2037 aflt->flt_panic = 1;
2049 } else if (!aflt->flt_priv) {
2061 aflt->flt_payload = FM_EREPORT_PAYLOAD_SYNC;
2063 sizeof (opl_async_flt_t), ue_queue, aflt->flt_panic);
2067 cpu_run_bus_error_handlers(aflt, expected);
2071 * Panic here if aflt->flt_panic has been set. Enqueued errors will
2074 if (aflt->flt_panic) {
2087 if (!aflt->flt_priv || aflt->flt_prot == AFLT_PROT_COPY) {
2109 struct async_flt *aflt;
2117 aflt = (struct async_flt *)&opl_flt;
2118 aflt->flt_id = gethrtime_waitfree();
2119 aflt->flt_bus_id = getprocessorid();
2120 aflt->flt_inst = CPU->cpu_id;
2121 aflt->flt_stat = p_ugesr;
2122 aflt->flt_pc = (caddr_t)rp->r_pc;
2123 aflt->flt_class = (uchar_t)CPU_FAULT;
2124 aflt->flt_tl = tl;
2125 aflt->flt_priv = (uchar_t)(tl == 1 ? 1 : ((rp->r_tstate & TSTATE_PRIV) ?
2127 aflt->flt_status = OPL_ECC_URGENT_TRAP;
2128 aflt->flt_panic = 1;
2134 opl_flt.flt_eid_sid = aflt->flt_inst;
2138 aflt->flt_payload = FM_EREPORT_PAYLOAD_URGENT;
2140 sizeof (opl_async_flt_t), ue_queue, aflt->flt_panic);
2270 cpu_check_allcpus(struct async_flt *aflt)
2275 cpu_ce_log_err(struct async_flt *aflt, errorq_elem_t *t)
2352 read_ecc_data(struct async_flt *aflt, short verbose, short ce_err)
2357 ce_scrub_xdiag_recirc(struct async_flt *aflt, errorq_t *eqp,
2366 flt_to_error_type(struct async_flt *aflt)