Home
last modified time | relevance | path

Searched refs:mce (Results 1 – 25 of 71) sorted by relevance

123

/linux/arch/powerpc/kernel/
H A Dmce.c49 static void mce_set_error_info(struct machine_check_event *mce, in mce_set_error_info() argument
52 mce->error_type = mce_err->error_type; in mce_set_error_info()
55 mce->u.ue_error.ue_error_type = mce_err->u.ue_error_type; in mce_set_error_info()
58 mce->u.slb_error.slb_error_type = mce_err->u.slb_error_type; in mce_set_error_info()
61 mce->u.erat_error.erat_error_type = mce_err->u.erat_error_type; in mce_set_error_info()
64 mce->u.tlb_error.tlb_error_type = mce_err->u.tlb_error_type; in mce_set_error_info()
67 mce->u.user_error.user_error_type = mce_err->u.user_error_type; in mce_set_error_info()
70 mce->u.ra_error.ra_error_type = mce_err->u.ra_error_type; in mce_set_error_info()
73 mce->u.link_error.link_error_type = mce_err->u.link_error_type; in mce_set_error_info()
97 struct machine_check_event *mce; in save_mce_event() local
[all …]
/linux/arch/x86/kernel/cpu/mce/
H A Dinternal.h38 int mce_severity(struct mce *a, struct pt_regs *regs, char **msg, bool is_excp);
49 bool intel_filter_mce(struct mce *m);
50 bool intel_mce_usable_address(struct mce *m);
57 static inline bool intel_filter_mce(struct mce *m) { return false; } in intel_filter_mce()
58 static inline bool intel_mce_usable_address(struct mce *m) { return false; } in intel_mce_usable_address()
66 void mce_track_storm(struct mce *mce);
74 static inline void mce_track_storm(struct mce *mce) {} in mce_track_storm() argument
122 int apei_write_mce(struct mce *m);
123 ssize_t apei_read_mce(struct mce *m, u64 *record_id);
127 static inline int apei_write_mce(struct mce *m) in apei_write_mce()
[all …]
H A Dthreshold.c114 void mce_track_storm(struct mce *mce) in mce_track_storm() argument
122 if (storm->banks[mce->bank].poll_only) in mce_track_storm()
133 if (!storm->banks[mce->bank].in_storm_mode) { in mce_track_storm()
134 delta = now - storm->banks[mce->bank].timestamp; in mce_track_storm()
140 history = storm->banks[mce->bank].history << shift; in mce_track_storm()
142 storm->banks[mce->bank].timestamp = now; in mce_track_storm()
145 if ((mce->status & MCI_STATUS_VAL) && mce_is_correctable(mce)) in mce_track_storm()
148 storm->banks[mce->bank].history = history; in mce_track_storm()
150 if (storm->banks[mce->bank].in_storm_mode) { in mce_track_storm()
153 printk_deferred(KERN_NOTICE "CPU%d BANK%d CMCI storm subsided\n", smp_processor_id(), mce->bank); in mce_track_storm()
[all …]
H A Ddev-mcelog.c39 struct mce *mce = (struct mce *)data; in dev_mce_log() local
42 if (mce->kflags & MCE_HANDLED_CEC) in dev_mce_log()
60 memcpy(mcelog->entry + entry, mce, sizeof(struct mce)); in dev_mce_log()
71 mce->kflags |= MCE_HANDLED_MCELOG; in dev_mce_log()
166 struct mce m; in __mce_read_apei()
168 if (usize < sizeof(struct mce)) in __mce_read_apei()
184 if (copy_to_user(*ubuf, &m, sizeof(struct mce))) in __mce_read_apei()
197 *ubuf += sizeof(struct mce); in __mce_read_apei()
219 if (*off != 0 || usize < mcelog->len * sizeof(struct mce)) in mce_chrdev_read()
226 struct mce *m = &mcelog->entry[i]; in mce_chrdev_read()
[all …]
H A Dinject.c42 static struct mce i_mce;
70 struct mce *m = (struct mce *)data; \
84 struct mce *m = (struct mce *)data; \
104 struct mce *m = (struct mce *)data; in inj_ipid_set()
116 static void setup_inj_struct(struct mce *m) in setup_inj_struct()
118 memset(m, 0, sizeof(struct mce)); in setup_inj_struct()
127 static void inject_mce(struct mce *m) in inject_mce()
129 struct mce *i = &per_cpu(injectm, m->extcpu); in inject_mce()
139 memcpy(i, m, sizeof(struct mce)); in inject_mce()
145 static void raise_poll(struct mce *m) in raise_poll()
[all …]
H A Dapei.c32 struct mce *m; in apei_mce_report_mem_error()
74 struct mce *m; in apei_smca_report_x86_error()
190 struct mce mce; member
193 int apei_write_mce(struct mce *m) in apei_write_mce()
211 rcd.sec_hdr.section_offset = (void *)&rcd.mce - (void *)&rcd; in apei_write_mce()
212 rcd.sec_hdr.section_length = sizeof(rcd.mce); in apei_write_mce()
220 memcpy(&rcd.mce, m, sizeof(*m)); in apei_write_mce()
225 ssize_t apei_read_mce(struct mce *m, u64 *record_id) in apei_read_mce()
248 memcpy(m, &rcd.mce, sizeof(*m)); in apei_read_mce()
H A Dcore.c121 void mce_prep_record_common(struct mce *m) in mce_prep_record_common()
130 void mce_prep_record_per_cpu(unsigned int cpu, struct mce *m) in mce_prep_record_per_cpu()
143 struct mce *m = &err->m; in mce_prep_record()
150 DEFINE_PER_CPU(struct mce, injectm);
178 struct mce *m = &err->m; in __print_mce()
227 struct mce *m = &err->m; in print_mce()
256 static const char *mce_dump_aux_info(struct mce *m) in mce_dump_aux_info()
296 struct mce *m = &err->m; in mce_panic()
306 struct mce *m = &err->m; in mce_panic()
360 return offsetof(struct mce, ip); in msr_to_offset()
[all …]
H A Dgenpool.c78 struct mce *mce; in mce_gen_pool_process() local
86 mce = &node->err.m; in mce_gen_pool_process()
87 blocking_notifier_call_chain(&x86_mce_decoder_chain, 0, mce); in mce_gen_pool_process()
H A DMakefile9 mce-inject-y := inject.o
10 obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o
/linux/drivers/acpi/nfit/
H A Dmce.c16 struct mce *mce = (struct mce *)data; in nfit_handle_mce() local
21 if (!mce_is_memory_error(mce) || mce_is_correctable(mce)) in nfit_handle_mce()
25 if (!mce_usable_address(mce)) in nfit_handle_mce()
35 unsigned int align = 1UL << MCI_MISC_ADDR_LSB(mce->misc); in nfit_handle_mce()
46 if (spa->address > mce->addr) in nfit_handle_mce()
48 if ((spa->address + spa->length - 1) < mce->addr) in nfit_handle_mce()
67 ALIGN_DOWN(mce->addr, align), align); in nfit_handle_mce()
79 mce->kflags |= MCE_HANDLED_NFIT; in nfit_handle_mce()
/linux/drivers/edac/
H A Die31200_edac.c370 static void __ie31200_check(struct mem_ctl_info *mci, struct mce *mce) in __ie31200_check() argument
374 info.erraddr = mce ? mce->addr : 0; in __ie31200_check()
534 static void mce_check(struct mce *mce) in mce_check() argument
544 __ie31200_check(priv->mci, mce); in mce_check()
550 struct mce *mce = (struct mce *)data; in mce_handler() local
553 if (mce->kflags & MCE_HANDLED_CEC) in mce_handler()
560 if ((mce->status & 0xefff) >> 7 != 1) in mce_handler()
563 type = mce->mcgstatus & MCG_STATUS_MCIP ? "Exception" : "Event"; in mce_handler()
566 mce->extcpu, type, mce->mcgstatus, in mce_handler()
567 mce->bank, mce->status); in mce_handler()
[all …]
H A Dskx_common.c651 const struct mce *m, in skx_mce_output_error()
729 static enum error_source skx_error_source(const struct mce *m) in skx_error_source()
748 struct mce *mce = (struct mce *)data; in skx_mce_check_error() local
754 if (mce->kflags & MCE_HANDLED_CEC) in skx_mce_check_error()
757 err_src = skx_error_source(mce); in skx_mce_check_error()
760 if (err_src == ERR_SRC_NOT_MEMORY || !(mce->status & MCI_STATUS_ADDRV)) in skx_mce_check_error()
764 res.mce = mce; in skx_mce_check_error()
765 res.addr = mce->addr & MCI_ADDR_PHYSADDR; in skx_mce_check_error()
767 pr_err("Invalid address 0x%llx in IA32_MC%d_ADDR\n", mce->addr, mce->bank); in skx_mce_check_error()
783 if (mce->mcgstatus & MCG_STATUS_MCIP) in skx_mce_check_error()
[all …]
H A Dmce_amd.c14 static void (*decode_dram_ecc)(int node_id, struct mce *m);
16 void amd_register_ecc_decoder(void (*f)(int, struct mce *)) in amd_register_ecc_decoder() argument
22 void amd_unregister_ecc_decoder(void (*f)(int, struct mce *)) in amd_unregister_ecc_decoder() argument
289 static void decode_mc0_mce(struct mce *m) in decode_mc0_mce()
399 static void decode_mc1_mce(struct mce *m) in decode_mc1_mce()
545 static void decode_mc2_mce(struct mce *m) in decode_mc2_mce()
556 static void decode_mc3_mce(struct mce *m) in decode_mc3_mce()
585 static void decode_mc4_mce(struct mce *m) in decode_mc4_mce()
643 static void decode_mc5_mce(struct mce *m) in decode_mc5_mce()
675 static void decode_mc6_mce(struct mce *m) in decode_mc6_mce()
[all …]
H A Digen6_edac.c1029 struct mce *mce = (struct mce *)data; in ecclog_mce_handler() local
1032 if (mce->kflags & MCE_HANDLED_CEC) in ecclog_mce_handler()
1040 if ((mce->status & 0xefff) >> 7 != 1) in ecclog_mce_handler()
1043 if (mce->mcgstatus & MCG_STATUS_MCIP) in ecclog_mce_handler()
1049 mce->extcpu, type, mce->mcgstatus, in ecclog_mce_handler()
1050 mce->bank, mce->status); in ecclog_mce_handler()
1051 edac_dbg(0, "TSC 0x%llx\n", mce->tsc); in ecclog_mce_handler()
1052 edac_dbg(0, "ADDR 0x%llx\n", mce->addr); in ecclog_mce_handler()
1053 edac_dbg(0, "MISC 0x%llx\n", mce->misc); in ecclog_mce_handler()
1055 mce->cpuvendor, mce->cpuid, mce->time, in ecclog_mce_handler()
[all …]
H A Dpnd2_edac.c1122 static void pnd2_mce_output_error(struct mem_ctl_info *mci, const struct mce *m, in pnd2_mce_output_error()
1369 struct mce *mce = (struct mce *)data; in pnd2_mce_check_error() local
1375 if (!mci || (mce->kflags & MCE_HANDLED_CEC)) in pnd2_mce_check_error()
1384 if ((mce->status & 0xefff) >> 7 != 1) in pnd2_mce_check_error()
1387 if (mce->mcgstatus & MCG_STATUS_MCIP) in pnd2_mce_check_error()
1394 mce->extcpu, type, mce->mcgstatus, mce->bank, mce->status); in pnd2_mce_check_error()
1395 pnd2_mc_printk(mci, KERN_INFO, "TSC %llx ", mce->tsc); in pnd2_mce_check_error()
1396 pnd2_mc_printk(mci, KERN_INFO, "ADDR %llx ", mce->addr); in pnd2_mce_check_error()
1397 pnd2_mc_printk(mci, KERN_INFO, "MISC %llx ", mce->misc); in pnd2_mce_check_error()
1399 mce->cpuvendor, mce->cpuid, mce->time, mce->socketid, mce->apicid); in pnd2_mce_check_error()
[all …]
H A Dmce_amd.h79 void amd_register_ecc_decoder(void (*f)(int, struct mce *));
80 void amd_unregister_ecc_decoder(void (*f)(int, struct mce *));
H A Dsb_edac.c2370 const struct mce *m, u8 *socket, in get_memory_error_data_from_mce()
3078 const struct mce *m) in sbridge_mce_output_error()
3258 struct mce *mce = (struct mce *)data; in sbridge_mce_check_error() local
3262 if (mce->kflags & MCE_HANDLED_CEC) in sbridge_mce_check_error()
3271 if ((mce->status & 0xefff) >> 7 != 1) in sbridge_mce_check_error()
3275 if (!GET_BITFIELD(mce->status, 58, 58)) in sbridge_mce_check_error()
3279 if (!GET_BITFIELD(mce->status, 59, 59)) in sbridge_mce_check_error()
3283 if (GET_BITFIELD(mce->misc, 6, 8) != 2) in sbridge_mce_check_error()
3286 mci = get_mci_for_node_id(mce->socketid, IMC0); in sbridge_mce_check_error()
3290 if (mce->mcgstatus & MCG_STATUS_MCIP) in sbridge_mce_check_error()
[all …]
/linux/Documentation/translations/zh_CN/mm/
H A Dhwpoison.rst143 x86 有 mce-inject, mce-test
145mce-test中的一些便携式hwpoison测试程序,见下文。
150 http://halobates.de/mce-lc09-2.pdf
153 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git
156 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git
/linux/arch/x86/include/asm/
H A Dmce.h188 struct mce entry[];
218 struct mce m;
228 #define to_mce_hw_err(mce) container_of(mce, struct mce_hw_err, m) argument
290 bool mce_is_memory_error(struct mce *m);
291 bool mce_is_correctable(struct mce *m);
292 bool mce_usable_address(struct mce *m);
308 DECLARE_PER_CPU(struct mce, injectm);
387 extern bool amd_mce_is_memory_error(struct mce *m);
392 static inline bool amd_mce_is_memory_error(struct mce *m) { return false; }; in amd_mce_is_memory_error()
/linux/drivers/cxl/core/
H A Dmce.c17 struct mce *mce = data; in cxl_handle_mce() local
21 if (!mce || !mce_usable_address(mce)) in cxl_handle_mce()
27 spa = mce->addr & MCI_ADDR_PHYSADDR; in cxl_handle_mce()
/linux/tools/testing/selftests/kvm/x86/
H A Ducna_injection_test.c157 struct kvm_x86_mce mce = {}; in inject_ucna() local
158 mce.status = status; in inject_ucna()
159 mce.mcg_status = 0; in inject_ucna()
165 mce.misc = (MCM_ADDR_PHYS << 6) | 0xc; in inject_ucna()
166 mce.addr = addr; in inject_ucna()
167 mce.bank = UCNA_BANK; in inject_ucna()
169 vcpu_ioctl(vcpu, KVM_X86_SET_MCE, &mce); in inject_ucna()
/linux/drivers/acpi/
H A Dacpi_extlog.c186 struct mce *mce = (struct mce *)data; in extlog_print() local
187 int bank = mce->bank; in extlog_print()
188 int cpu = mce->extcpu; in extlog_print()
200 if (mce->kflags & MCE_HANDLED_CEC) { in extlog_print()
254 mce->kflags |= MCE_HANDLED_EXTLOG; in extlog_print()
/linux/Documentation/mm/
H A Dhwpoison.rst159 x86 has mce-inject, mce-test
161 Some portable hwpoison test programs in mce-test, see below.
166 http://halobates.de/mce-lc09-2.pdf
169 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git
172 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git
/linux/drivers/net/ethernet/marvell/octeontx2/af/
H A Drvu_nix.c81 struct mce { struct
1185 memcpy(ctx, &req->mce, NIX_MAX_CTX_SIZE); in rvu_nix_blk_aq_enq_inst()
1263 memcpy(&rsp->mce, ctx, in rvu_nix_blk_aq_enq_inst()
3177 int mce, u8 op, u16 pcifunc, int next, in nix_blk_setup_mce() argument
3186 aq_req.qidx = mce; in nix_blk_setup_mce()
3189 aq_req.mce.op = mce_op; in nix_blk_setup_mce()
3190 aq_req.mce.index = index; in nix_blk_setup_mce()
3191 aq_req.mce.eol = eol; in nix_blk_setup_mce()
3192 aq_req.mce.pf_func = pcifunc; in nix_blk_setup_mce()
3193 aq_req.mce.next = next; in nix_blk_setup_mce()
[all …]
/linux/drivers/media/rc/keymaps/
H A DMakefile44 rc-dvico-mce.o \
54 rc-fusionhdtv-mce.o \
62 rc-imon-mce.o \
106 rc-rc6-mce.o \

123