Lines Matching refs:ecc

816 	struct async_flt *ecc;  in cpu_ce_error()  local
838 ecc = (struct async_flt *)&spf_flt; in cpu_ce_error()
839 ecc->flt_id = gethrtime_waitfree(); in cpu_ce_error()
840 ecc->flt_stat = t_afsr; in cpu_ce_error()
841 ecc->flt_addr = t_afar; in cpu_ce_error()
842 ecc->flt_status = ECC_C_TRAP; in cpu_ce_error()
843 ecc->flt_bus_id = getprocessorid(); in cpu_ce_error()
844 ecc->flt_inst = CPU->cpu_id; in cpu_ce_error()
845 ecc->flt_pc = (caddr_t)rp->r_pc; in cpu_ce_error()
846 ecc->flt_func = log_ce_err; in cpu_ce_error()
847 ecc->flt_in_memory = in cpu_ce_error()
848 (pf_is_memory(ecc->flt_addr >> MMU_PAGESHIFT)) ? 1: 0; in cpu_ce_error()
879 if ((ecc->flt_stat & (S_AFSR_ALL_ERRS & ~P_AFSR_ME)) == P_AFSR_CE && in cpu_ce_error()
883 if (page_retire_check(ecc->flt_addr, NULL) == 0) { in cpu_ce_error()
896 ecc->flt_synd = e_syndh; in cpu_ce_error()
897 ce_scrub(ecc); in cpu_ce_error()
899 cpu_errorq_dispatch(FM_EREPORT_CPU_USII_CE, ecc, in cpu_ce_error()
900 sizeof (*ecc), ce_queue, ERRORQ_ASYNC); in cpu_ce_error()
905 ecc->flt_addr = t_afar | 0x8; /* Sabres do not have a UDBL */ in cpu_ce_error()
906 ecc->flt_synd = e_syndl | UDBL_REG; in cpu_ce_error()
907 ce_scrub(ecc); in cpu_ce_error()
909 cpu_errorq_dispatch(FM_EREPORT_CPU_USII_CE, ecc, in cpu_ce_error()
910 sizeof (*ecc), ce_queue, ERRORQ_ASYNC); in cpu_ce_error()
944 ce_scrub_xdiag_recirc(struct async_flt *ecc, errorq_t *eqp, errorq_elem_t *eqep, in ce_scrub_xdiag_recirc() argument
997 cpu_ce_scrub_mem_err(struct async_flt *ecc, boolean_t triedcpulogout) in cpu_ce_scrub_mem_err() argument
1020 if (ecc->flt_status & ECC_IOBUS) { in cpu_ce_scrub_mem_err()
1021 ecc->flt_stat = P_AFSR_CE; in cpu_ce_scrub_mem_err()
1024 scrubphys(P2ALIGN(ecc->flt_addr, 64), in cpu_ce_scrub_mem_err()
1049 if (check_ecc(ecc) != 0) { in cpu_ce_scrub_mem_err()
1050 cpu_read_paddr(ecc, 0, 1); in cpu_ce_scrub_mem_err()
1052 if (check_ecc(ecc) != 0) in cpu_ce_scrub_mem_err()
1063 ecc->flt_status &= ~(ECC_INTERMITTENT | ECC_PERSISTENT | ECC_STICKY); in cpu_ce_scrub_mem_err()
1064 ecc->flt_status |= status; in cpu_ce_scrub_mem_err()
1073 cpu_ce_log_err(struct async_flt *ecc, errorq_elem_t *eqep) in cpu_ce_log_err() argument
1080 ASSERT(ecc->flt_func != NULL); in cpu_ce_log_err()
1083 (void) cpu_get_mem_unum_aflt(AFLT_STAT_VALID, ecc, unum, in cpu_ce_log_err()
1087 (void) (*ecc->flt_func)(ecc, unum); in cpu_ce_log_err()
1093 if ((err = ce_count_unum(ecc->flt_status, len, unum)) != PR_OK && in cpu_ce_log_err()
1095 (void) page_retire(ecc->flt_addr, err); in cpu_ce_log_err()
1098 if (ecc->flt_panic) { in cpu_ce_log_err()
1100 } else if ((ecc->flt_class == BUS_FAULT) || in cpu_ce_log_err()
1101 (ecc->flt_stat & P_AFSR_CE)) { in cpu_ce_log_err()
1111 sflt.cmn_asyncflt = *ecc; /* for cpu_aflt_log() */ in cpu_ce_log_err()
1116 SYND(ecc->flt_synd)); in cpu_ce_log_err()
1164 if (ce_show_data && ecc->flt_addr != AFLT_INV_ADDR) in cpu_ce_log_err()
1165 read_ecc_data(ecc, 1, 1); in cpu_ce_log_err()
2541 cpu_read_paddr(struct async_flt *ecc, short verbose, short ce_err) in cpu_read_paddr() argument
2543 uint64_t aligned_addr = P2ALIGN(ecc->flt_addr, 8); in cpu_read_paddr()
2638 read_ecc_data(struct async_flt *ecc, short verbose, short ce_err) in read_ecc_data() argument
2652 cpu_read_paddr(ecc, verbose, ce_err); in read_ecc_data()
2653 (void) check_ecc(ecc); in read_ecc_data()
2668 check_ecc(struct async_flt *ecc) in check_ecc() argument
2699 if (ecc->flt_synd & UDBL_REG) { in check_ecc()
2726 if (t_afar != ecc->flt_addr) { in check_ecc()
2735 if ((ecc->flt_stat & P_AFSR_UE) && (t_afsr & P_AFSR_UE)) { in check_ecc()
2742 if ((ecc->flt_stat & P_AFSR_CE) && (t_afsr & P_AFSR_CE)) { in check_ecc()
2744 (ecc->flt_synd & P_DER_E_SYND)) { in check_ecc()
4419 cpu_ce_count_unum(struct async_flt *ecc, int len, char *unum) in cpu_ce_count_unum() argument
4423 err = ce_count_unum(ecc->flt_status, len, unum); in cpu_ce_count_unum()
4425 (void) page_retire(ecc->flt_addr, err); in cpu_ce_count_unum()