Lines Matching refs:mc_aflt
929 mc_ereport_post(mc_aflt_t *mc_aflt) in mc_ereport_post() argument
962 nflts = mc_aflt->mflt_nflts; in mc_ereport_post()
966 flt_stat = mc_aflt->mflt_stat[0]; in mc_ereport_post()
967 (void) ddi_pathname(mc_aflt->mflt_mcp->mc_dip, device_path); in mc_ereport_post()
975 mc_aflt->mflt_is_ptrl ? MC_OPL_PTRL_SUBCLASS : MC_OPL_MI_SUBCLASS, in mc_ereport_post()
976 mc_aflt->mflt_erpt_class); in mc_ereport_post()
982 fm_ena_generate(mc_aflt->mflt_id, FM_ENA_FMT1), detector, NULL); in mc_ereport_post()
1000 values[i] = mc_aflt->mflt_stat[i]->mf_flt_maddr.ma_bank; in mc_ereport_post()
1006 values[i] = mc_aflt->mflt_stat[i]->mf_cntl; in mc_ereport_post()
1012 values[i] = mc_aflt->mflt_stat[i]->mf_err_add; in mc_ereport_post()
1015 if (mc_aflt->mflt_stat[0]->mf_type == FLT_TYPE_INTERMITTENT_CE || in mc_ereport_post()
1016 mc_aflt->mflt_stat[0]->mf_type == FLT_TYPE_PERMANENT_CE) { in mc_ereport_post()
1024 values[i] = mc_aflt->mflt_stat[i]->mf_err_log; in mc_ereport_post()
1030 flt_stat = mc_aflt->mflt_stat[i]; in mc_ereport_post()
1060 flt_stat = mc_aflt->mflt_stat[i]; in mc_ereport_post()
1084 ret = mc_set_mem_sid(mc_aflt->mflt_mcp, s + strlen(s), in mc_ereport_post()
1110 mc_err_drain(mc_aflt_t *mc_aflt) in mc_err_drain() argument
1116 MC_LOG("mc_err_drain: %s\n", mc_aflt->mflt_erpt_class); in mc_err_drain()
1122 for (i = 0; i < mc_aflt->mflt_nflts; i++) { in mc_err_drain()
1123 rv = mcaddr_to_pa(mc_aflt->mflt_mcp, in mc_err_drain()
1124 &(mc_aflt->mflt_stat[i]->mf_flt_maddr), &pa); in mc_err_drain()
1127 if (rv == 0 && pa_is_valid(mc_aflt->mflt_mcp, pa)) in mc_err_drain()
1128 mc_aflt->mflt_stat[i]->mf_flt_paddr = pa; in mc_err_drain()
1130 mc_aflt->mflt_stat[i]->mf_flt_paddr = (uint64_t)-1; in mc_err_drain()
1145 if (mc_aflt->mflt_stat[0]->mf_type != in mc_err_drain()
1147 mc_aflt->mflt_stat[0]->mf_type != FLT_TYPE_PERMANENT_CE) { in mc_err_drain()
1149 mc_aflt->mflt_pr); in mc_err_drain()
1150 (void) page_retire(pa, mc_aflt->mflt_pr); in mc_err_drain()
1162 for (i = 0; i < mc_aflt->mflt_nflts; i++) { in mc_err_drain()
1164 if (mc_aflt->mflt_stat[i]->mf_flt_paddr != (uint64_t)-1) { in mc_err_drain()
1165 mc_aflt0 = *mc_aflt; in mc_err_drain()
1167 mc_aflt0.mflt_stat[0] = mc_aflt->mflt_stat[i]; in mc_err_drain()
1734 mc_process_error_mir(mc_opl_t *mcp, mc_aflt_t *mc_aflt, mc_flt_stat_t *flt_stat) in mc_process_error_mir() argument
1736 int ptrl_error = mc_aflt->mflt_is_ptrl; in mc_process_error_mir()
1789 mc_aflt->mflt_erpt_class = MC_OPL_CMPE; in mc_process_error_mir()
1790 mc_aflt->mflt_nflts = 2; in mc_process_error_mir()
1791 mc_aflt->mflt_stat[0] = &flt_stat[0]; in mc_process_error_mir()
1792 mc_aflt->mflt_stat[1] = &flt_stat[1]; in mc_process_error_mir()
1793 mc_aflt->mflt_pr = PR_UE; in mc_process_error_mir()
1812 mc_aflt->mflt_erpt_class = MC_OPL_MUE; in mc_process_error_mir()
1813 mc_aflt->mflt_nflts = 2; in mc_process_error_mir()
1814 mc_aflt->mflt_stat[0] = &flt_stat[0]; in mc_process_error_mir()
1815 mc_aflt->mflt_stat[1] = &flt_stat[1]; in mc_process_error_mir()
1816 mc_aflt->mflt_pr = PR_UE; in mc_process_error_mir()
1817 mc_err_drain(mc_aflt); in mc_process_error_mir()
1834 mc_aflt->mflt_erpt_class = MC_OPL_SUE; in mc_process_error_mir()
1835 mc_aflt->mflt_stat[0] = &flt_stat[i]; in mc_process_error_mir()
1836 mc_aflt->mflt_nflts = 1; in mc_process_error_mir()
1837 mc_aflt->mflt_pr = PR_MCE; in mc_process_error_mir()
1838 mc_err_drain(mc_aflt); in mc_process_error_mir()
1852 mc_aflt->mflt_erpt_class = MC_OPL_CMPE; in mc_process_error_mir()
1853 mc_aflt->mflt_nflts = 1; in mc_process_error_mir()
1854 mc_aflt->mflt_stat[0] = &flt_stat[i]; in mc_process_error_mir()
1855 mc_aflt->mflt_pr = PR_UE; in mc_process_error_mir()
1879 mc_aflt->mflt_erpt_class = MC_OPL_SUE; in mc_process_error_mir()
1880 mc_aflt->mflt_stat[0] = &flt_stat[i]; in mc_process_error_mir()
1881 mc_aflt->mflt_nflts = 1; in mc_process_error_mir()
1882 mc_aflt->mflt_pr = PR_MCE; in mc_process_error_mir()
1883 mc_err_drain(mc_aflt); in mc_process_error_mir()
1893 mc_aflt_t mc_aflt; in mc_error_handler_mir() local
1900 bzero(&mc_aflt, sizeof (mc_aflt_t)); in mc_error_handler_mir()
1905 mc_aflt.mflt_mcp = mcp; in mc_error_handler_mir()
1906 mc_aflt.mflt_id = gethrtime(); in mc_error_handler_mir()
1955 mc_aflt.mflt_is_ptrl = 0; in mc_error_handler_mir()
1956 mi_valid = mc_process_error_mir(mcp, &mc_aflt, &mi_flt_stat[0]); in mc_error_handler_mir()
1984 mc_aflt.mflt_is_ptrl = 1; in mc_error_handler_mir()
1985 rsaddr->mi_valid = mc_process_error_mir(mcp, &mc_aflt, &flt_stat[0]); in mc_error_handler_mir()
1988 mc_process_error(mc_opl_t *mcp, int bank, mc_aflt_t *mc_aflt, in mc_process_error() argument
1991 int ptrl_error = mc_aflt->mflt_is_ptrl; in mc_process_error()
1994 mc_aflt->mflt_erpt_class = NULL; in mc_process_error()
1998 mc_aflt->mflt_erpt_class = MC_OPL_UE; in mc_process_error()
1999 mc_aflt->mflt_pr = PR_UE; in mc_process_error()
2013 mc_aflt->mflt_erpt_class = MC_OPL_ICE; in mc_process_error()
2014 mc_aflt->mflt_pr = PR_MCE; in mc_process_error()
2016 mc_aflt->mflt_erpt_class = MC_OPL_CE; in mc_process_error()
2017 mc_aflt->mflt_pr = PR_MCE; in mc_process_error()
2019 mc_aflt->mflt_erpt_class = MC_OPL_UE; in mc_process_error()
2020 mc_aflt->mflt_pr = PR_UE; in mc_process_error()
2025 mc_aflt->mflt_erpt_class); in mc_process_error()
2026 if (mc_aflt->mflt_erpt_class) { in mc_process_error()
2027 mc_aflt->mflt_stat[0] = flt_stat; in mc_process_error()
2028 mc_aflt->mflt_nflts = 1; in mc_process_error()
2029 mc_err_drain(mc_aflt); in mc_process_error()
2037 mc_aflt_t mc_aflt; in mc_error_handler() local
2041 bzero(&mc_aflt, sizeof (mc_aflt_t)); in mc_error_handler()
2045 mc_aflt.mflt_mcp = mcp; in mc_error_handler()
2046 mc_aflt.mflt_id = gethrtime(); in mc_error_handler()
2067 mc_aflt.mflt_is_ptrl = 0; in mc_error_handler()
2071 mi_valid = mc_process_error(mcp, bank, &mc_aflt, &mi_flt_stat); in mc_error_handler()
2087 mc_aflt.mflt_is_ptrl = 1; in mc_error_handler()
2091 rsaddr->mi_valid = mc_process_error(mcp, bank, &mc_aflt, in mc_error_handler()