/linux/arch/powerpc/kernel/ |
H A D | mce.c | 49 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 D | internal.h | 38 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); 73 static inline void mce_track_storm(struct mce *mce) {} in mce_track_storm() argument 120 int apei_write_mce(struct mce *m); 121 ssize_t apei_read_mce(struct mce *m, u64 *record_id); 125 static inline int apei_write_mce(struct mce *m) in apei_write_mce() [all …]
|
H A D | threshold.c | 97 void mce_track_storm(struct mce *mce) in mce_track_storm() argument 105 if (storm->banks[mce->bank].poll_only) in mce_track_storm() 116 if (!storm->banks[mce->bank].in_storm_mode) { in mce_track_storm() 117 delta = now - storm->banks[mce->bank].timestamp; in mce_track_storm() 123 history = storm->banks[mce->bank].history << shift; in mce_track_storm() 125 storm->banks[mce->bank].timestamp = now; in mce_track_storm() 128 if ((mce->status & MCI_STATUS_VAL) && mce_is_correctable(mce)) in mce_track_storm() 131 storm->banks[mce->bank].history = history; in mce_track_storm() 133 if (storm->banks[mce->bank].in_storm_mode) { in mce_track_storm() 136 printk_deferred(KERN_NOTICE "CPU%d BANK%d CMCI storm subsided\n", smp_processor_id(), mce->bank); in mce_track_storm() [all …]
|
H A D | dev-mcelog.c | 39 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 D | apei.c | 32 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 D | core.c | 120 void mce_prep_record_common(struct mce *m) in mce_prep_record_common() 129 void mce_prep_record_per_cpu(unsigned int cpu, struct mce *m) in mce_prep_record_per_cpu() 142 struct mce *m = &err->m; in mce_prep_record() 149 DEFINE_PER_CPU(struct mce, injectm); 177 struct mce *m = &err->m; in __print_mce() 226 struct mce *m = &err->m; in print_mce() 255 static const char *mce_dump_aux_info(struct mce *m) in mce_dump_aux_info() 295 struct mce *m = &err->m; in mce_panic() 305 struct mce *m = &err->m; in mce_panic() 359 return offsetof(struct mce, ip); in msr_to_offset() [all …]
|
H A D | Makefile | 9 mce-inject-y := inject.o 10 obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o
|
H A D | severity.c | 286 static noinstr int error_context(struct mce *m, struct pt_regs *regs) in error_context() 321 static noinstr int mce_severity_amd(struct mce *m, struct pt_regs *regs, char **msg, bool is_excp) in mce_severity_amd() 381 static noinstr int mce_severity_intel(struct mce *m, struct pt_regs *regs, char **msg, bool is_excp) in mce_severity_intel() 414 int noinstr mce_severity(struct mce *m, struct pt_regs *regs, char **msg, bool is_excp) in mce_severity()
|
/linux/drivers/acpi/nfit/ |
H A D | mce.c | 16 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()
|
H A D | Makefile | 5 nfit-$(CONFIG_X86_MCE) += mce.o
|
/linux/drivers/edac/ |
H A D | skx_common.c | 568 const struct mce *m, in skx_mce_output_error() 646 static enum error_source skx_error_source(const struct mce *m) in skx_error_source() 665 struct mce *mce = (struct mce *)data; in skx_mce_check_error() local 671 if (mce->kflags & MCE_HANDLED_CEC) in skx_mce_check_error() 674 err_src = skx_error_source(mce); in skx_mce_check_error() 677 if (err_src == ERR_SRC_NOT_MEMORY || !(mce->status & MCI_STATUS_ADDRV)) in skx_mce_check_error() 681 res.mce = mce; in skx_mce_check_error() 682 res.addr = mce->addr & MCI_ADDR_PHYSADDR; in skx_mce_check_error() 684 pr_err("Invalid address 0x%llx in IA32_MC%d_ADDR\n", mce->addr, mce->bank); in skx_mce_check_error() 700 if (mce->mcgstatus & MCG_STATUS_MCIP) in skx_mce_check_error() [all …]
|
H A D | igen6_edac.c | 930 struct mce *mce = (struct mce *)data; in ecclog_mce_handler() local 933 if (mce->kflags & MCE_HANDLED_CEC) in ecclog_mce_handler() 941 if ((mce->status & 0xefff) >> 7 != 1) in ecclog_mce_handler() 944 if (mce->mcgstatus & MCG_STATUS_MCIP) in ecclog_mce_handler() 950 mce->extcpu, type, mce->mcgstatus, in ecclog_mce_handler() 951 mce->bank, mce->status); in ecclog_mce_handler() 952 edac_dbg(0, "TSC 0x%llx\n", mce->tsc); in ecclog_mce_handler() 953 edac_dbg(0, "ADDR 0x%llx\n", mce->addr); in ecclog_mce_handler() 954 edac_dbg(0, "MISC 0x%llx\n", mce->misc); in ecclog_mce_handler() 956 mce->cpuvendor, mce->cpuid, mce->time, in ecclog_mce_handler() [all …]
|
H A D | pnd2_edac.c | 1122 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 D | mce_amd.h | 79 void amd_register_ecc_decoder(void (*f)(int, struct mce *)); 80 void amd_unregister_ecc_decoder(void (*f)(int, struct mce *));
|
H A D | sb_edac.c | 2371 const struct mce *m, u8 *socket, in get_memory_error_data_from_mce() 3079 const struct mce *m) in sbridge_mce_output_error() 3259 struct mce *mce = (struct mce *)data; in sbridge_mce_check_error() local 3263 if (mce->kflags & MCE_HANDLED_CEC) in sbridge_mce_check_error() 3272 if ((mce->status & 0xefff) >> 7 != 1) in sbridge_mce_check_error() 3276 if (!GET_BITFIELD(mce->status, 58, 58)) in sbridge_mce_check_error() 3280 if (!GET_BITFIELD(mce->status, 59, 59)) in sbridge_mce_check_error() 3284 if (GET_BITFIELD(mce->misc, 6, 8) != 2) in sbridge_mce_check_error() 3287 mci = get_mci_for_node_id(mce->socketid, IMC0); in sbridge_mce_check_error() 3291 if (mce->mcgstatus & MCG_STATUS_MCIP) in sbridge_mce_check_error() [all …]
|
/linux/Documentation/translations/zh_CN/mm/ |
H A D | hwpoison.rst | 143 x86 有 mce-inject, mce-test 145 在mce-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 D | mce.h | 180 struct mce entry[]; 210 struct mce m; 220 #define to_mce_hw_err(mce) container_of(mce, struct mce_hw_err, m) argument 280 bool mce_is_memory_error(struct mce *m); 281 bool mce_is_correctable(struct mce *m); 282 bool mce_usable_address(struct mce *m); 301 DECLARE_PER_CPU(struct mce, injectm); 374 extern bool amd_mce_is_memory_error(struct mce *m); 385 static inline bool amd_mce_is_memory_error(struct mce *m) { return false; }; in amd_mce_is_memory_error()
|
H A D | tdx.h | 118 const char *tdx_dump_mce_info(struct mce *m); 123 static inline const char *tdx_dump_mce_info(struct mce *m) { return NULL; } in tdx_dump_mce_info()
|
/linux/tools/testing/selftests/kvm/x86_64/ |
H A D | ucna_injection_test.c | 157 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 D | acpi_extlog.c | 137 struct mce *mce = (struct mce *)data; in extlog_print() local 138 int bank = mce->bank; in extlog_print() 139 int cpu = mce->extcpu; in extlog_print() 151 if (mce->kflags & MCE_HANDLED_CEC) { in extlog_print() 189 mce->kflags |= MCE_HANDLED_EXTLOG; in extlog_print()
|
/linux/Documentation/arch/x86/x86_64/ |
H A D | boot-options.rst | 14 mce=off 16 mce=no_cmci 24 mce=dont_log_ce 29 mce=ignore_ce 38 mce=no_lmce 41 mce=bootlog 48 mce=nobootlog 50 mce=monarchtimeout (number) 54 mce=bios_cmci_threshold 61 mce=recovery [all …]
|
H A D | machinecheck.rst | 25 Documentation/ABI/testing/sysfs-mce for more details. 33 see http://one.firstfloor.org/~andi/mce.pdf
|
/linux/Documentation/mm/ |
H A D | hwpoison.rst | 159 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 D | rvu_nix.c | 81 struct mce { struct 1130 memcpy(ctx, &req->mce, sizeof(struct nix_rx_mce_s)); in rvu_nix_blk_aq_enq_inst() 1208 memcpy(&rsp->mce, ctx, in rvu_nix_blk_aq_enq_inst() 3121 int mce, u8 op, u16 pcifunc, int next, in nix_blk_setup_mce() argument 3130 aq_req.qidx = mce; in nix_blk_setup_mce() 3133 aq_req.mce.op = mce_op; in nix_blk_setup_mce() 3134 aq_req.mce.index = index; in nix_blk_setup_mce() 3135 aq_req.mce.eol = eol; in nix_blk_setup_mce() 3136 aq_req.mce.pf_func = pcifunc; in nix_blk_setup_mce() 3137 aq_req.mce.next = next; in nix_blk_setup_mce() [all …]
|
/linux/drivers/media/rc/keymaps/ |
H A D | Makefile | 44 rc-dvico-mce.o \ 54 rc-fusionhdtv-mce.o \ 62 rc-imon-mce.o \ 106 rc-rc6-mce.o \
|