Lines Matching refs:mce
66 static void mce_set_error_info(struct machine_check_event *mce, in mce_set_error_info() argument
69 mce->error_type = mce_err->error_type; in mce_set_error_info()
72 mce->u.ue_error.ue_error_type = mce_err->u.ue_error_type; in mce_set_error_info()
75 mce->u.slb_error.slb_error_type = mce_err->u.slb_error_type; in mce_set_error_info()
78 mce->u.erat_error.erat_error_type = mce_err->u.erat_error_type; in mce_set_error_info()
81 mce->u.tlb_error.tlb_error_type = mce_err->u.tlb_error_type; in mce_set_error_info()
84 mce->u.user_error.user_error_type = mce_err->u.user_error_type; in mce_set_error_info()
87 mce->u.ra_error.ra_error_type = mce_err->u.ra_error_type; in mce_set_error_info()
90 mce->u.link_error.link_error_type = mce_err->u.link_error_type; in mce_set_error_info()
107 struct machine_check_event *mce = this_cpu_ptr(&mce_event[index]); in save_mce_event() local
118 mce->version = MCE_V1; in save_mce_event()
119 mce->srr0 = nip; in save_mce_event()
120 mce->srr1 = regs->msr; in save_mce_event()
121 mce->gpr3 = regs->gpr[3]; in save_mce_event()
122 mce->in_use = 1; in save_mce_event()
123 mce->cpu = get_paca()->paca_index; in save_mce_event()
127 mce->disposition = MCE_DISPOSITION_RECOVERED; in save_mce_event()
129 mce->disposition = MCE_DISPOSITION_NOT_RECOVERED; in save_mce_event()
131 mce->initiator = mce_err->initiator; in save_mce_event()
132 mce->severity = mce_err->severity; in save_mce_event()
133 mce->sync_error = mce_err->sync_error; in save_mce_event()
134 mce->error_class = mce_err->error_class; in save_mce_event()
139 mce_set_error_info(mce, mce_err); in save_mce_event()
144 if (mce->error_type == MCE_ERROR_TYPE_TLB) { in save_mce_event()
145 mce->u.tlb_error.effective_address_provided = true; in save_mce_event()
146 mce->u.tlb_error.effective_address = addr; in save_mce_event()
147 } else if (mce->error_type == MCE_ERROR_TYPE_SLB) { in save_mce_event()
148 mce->u.slb_error.effective_address_provided = true; in save_mce_event()
149 mce->u.slb_error.effective_address = addr; in save_mce_event()
150 } else if (mce->error_type == MCE_ERROR_TYPE_ERAT) { in save_mce_event()
151 mce->u.erat_error.effective_address_provided = true; in save_mce_event()
152 mce->u.erat_error.effective_address = addr; in save_mce_event()
153 } else if (mce->error_type == MCE_ERROR_TYPE_USER) { in save_mce_event()
154 mce->u.user_error.effective_address_provided = true; in save_mce_event()
155 mce->u.user_error.effective_address = addr; in save_mce_event()
156 } else if (mce->error_type == MCE_ERROR_TYPE_RA) { in save_mce_event()
157 mce->u.ra_error.effective_address_provided = true; in save_mce_event()
158 mce->u.ra_error.effective_address = addr; in save_mce_event()
159 } else if (mce->error_type == MCE_ERROR_TYPE_LINK) { in save_mce_event()
160 mce->u.link_error.effective_address_provided = true; in save_mce_event()
161 mce->u.link_error.effective_address = addr; in save_mce_event()
162 } else if (mce->error_type == MCE_ERROR_TYPE_UE) { in save_mce_event()
163 mce->u.ue_error.effective_address_provided = true; in save_mce_event()
164 mce->u.ue_error.effective_address = addr; in save_mce_event()
166 mce->u.ue_error.physical_address_provided = true; in save_mce_event()
167 mce->u.ue_error.physical_address = phys_addr; in save_mce_event()
168 mce->u.ue_error.ignore_event = mce_err->ignore_event; in save_mce_event()
169 machine_check_ue_event(mce); in save_mce_event()
192 int get_mce_event(struct machine_check_event *mce, bool release) in get_mce_event() argument
206 if (mce) in get_mce_event()
207 *mce = *mc_evt; in get_mce_event()