/openbmc/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 …]
|
/openbmc/linux/arch/x86/kernel/cpu/mce/ |
H A D | genpool.c | 35 struct mce *m1, *m2; in is_duplicate_mce_record() 37 m1 = &t->mce; in is_duplicate_mce_record() 40 m2 = &node->mce; in is_duplicate_mce_record() 78 struct mce *mce; in mce_gen_pool_process() local 86 mce = &node->mce; in mce_gen_pool_process() 87 blocking_notifier_call_chain(&x86_mce_decoder_chain, 0, mce); in mce_gen_pool_process() 97 int mce_gen_pool_add(struct mce *mce) in mce_gen_pool_add() argument 101 if (filter_mce(mce)) in mce_gen_pool_add() 113 memcpy(&node->mce, mce, sizeof(*mce)); in mce_gen_pool_add()
|
H A D | internal.h | 29 struct mce mce; member 34 int mce_gen_pool_add(struct mce *mce); 38 int mce_severity(struct mce *a, struct pt_regs *regs, char **msg, bool is_excp); 51 bool intel_filter_mce(struct mce *m); 60 static inline bool intel_filter_mce(struct mce *m) { return false; } in intel_filter_mce() 66 int apei_write_mce(struct mce *m); 67 ssize_t apei_read_mce(struct mce *m, u64 *record_id); 71 static inline int apei_write_mce(struct mce *m) in apei_write_mce() 75 static inline ssize_t apei_read_mce(struct mce *m, u64 *record_id) in apei_read_mce() 95 static inline bool mce_cmp(struct mce *m1, struct mce *m2) in mce_cmp() [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 | inject.c | 41 static struct mce i_mce; 69 struct mce *m = (struct mce *)data; \ 83 struct mce *m = (struct mce *)data; \ 103 struct mce *m = (struct mce *)data; in inj_ipid_set() 115 static void setup_inj_struct(struct mce *m) in setup_inj_struct() 117 memset(m, 0, sizeof(struct mce)); in setup_inj_struct() 126 static void inject_mce(struct mce *m) in inject_mce() 128 struct mce *i = &per_cpu(injectm, m->extcpu); in inject_mce() 138 memcpy(i, m, sizeof(struct mce)); in inject_mce() 144 static void raise_poll(struct mce *m) in raise_poll() [all …]
|
H A D | apei.c | 31 struct mce m; in apei_mce_report_mem_error() 70 struct mce m; in apei_smca_report_x86_error() 141 struct mce mce; member 144 int apei_write_mce(struct mce *m) in apei_write_mce() 162 rcd.sec_hdr.section_offset = (void *)&rcd.mce - (void *)&rcd; in apei_write_mce() 163 rcd.sec_hdr.section_length = sizeof(rcd.mce); in apei_write_mce() 171 memcpy(&rcd.mce, m, sizeof(*m)); in apei_write_mce() 176 ssize_t apei_read_mce(struct mce *m, u64 *record_id) in apei_read_mce() 199 memcpy(m, &rcd.mce, sizeof(*m)); in apei_read_mce()
|
H A D | core.c | 89 static DEFINE_PER_CPU(struct mce, mces_seen); 119 void mce_setup(struct mce *m) in mce_setup() 121 memset(m, 0, sizeof(struct mce)); in mce_setup() 134 DEFINE_PER_CPU(struct mce, injectm); 137 void mce_log(struct mce *m) in mce_log() 160 static void __print_mce(struct mce *m) in __print_mce() 203 static void print_mce(struct mce *m) in print_mce() 232 static noinstr void mce_panic(const char *msg, struct mce *final, char *exp) in mce_panic() 263 struct mce *m = &l->mce; in mce_panic() 272 struct mce *m = &l->mce; in mce_panic() [all …]
|
H A D | Makefile | 9 mce-inject-y := inject.o 10 obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o
|
/openbmc/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()
|
/openbmc/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 | mce_amd.c | 13 static void (*decode_dram_ecc)(int node_id, struct mce *m); 15 void amd_register_ecc_decoder(void (*f)(int, struct mce *)) in amd_register_ecc_decoder() argument 21 void amd_unregister_ecc_decoder(void (*f)(int, struct mce *)) in amd_unregister_ecc_decoder() argument 764 static void decode_mc0_mce(struct mce *m) in decode_mc0_mce() 874 static void decode_mc1_mce(struct mce *m) in decode_mc1_mce() 1020 static void decode_mc2_mce(struct mce *m) in decode_mc2_mce() 1031 static void decode_mc3_mce(struct mce *m) in decode_mc3_mce() 1060 static void decode_mc4_mce(struct mce *m) in decode_mc4_mce() 1118 static void decode_mc5_mce(struct mce *m) in decode_mc5_mce() 1150 static void decode_mc6_mce(struct mce *m) in decode_mc6_mce() [all …]
|
H A D | igen6_edac.c | 738 struct mce *mce = (struct mce *)data; in ecclog_mce_handler() local 741 if (mce->kflags & MCE_HANDLED_CEC) in ecclog_mce_handler() 749 if ((mce->status & 0xefff) >> 7 != 1) in ecclog_mce_handler() 752 if (mce->mcgstatus & MCG_STATUS_MCIP) in ecclog_mce_handler() 758 mce->extcpu, type, mce->mcgstatus, in ecclog_mce_handler() 759 mce->bank, mce->status); in ecclog_mce_handler() 760 edac_dbg(0, "TSC 0x%llx\n", mce->tsc); in ecclog_mce_handler() 761 edac_dbg(0, "ADDR 0x%llx\n", mce->addr); in ecclog_mce_handler() 762 edac_dbg(0, "MISC 0x%llx\n", mce->misc); in ecclog_mce_handler() 764 mce->cpuvendor, mce->cpuid, mce->time, in ecclog_mce_handler() [all …]
|
H A D | pnd2_edac.c | 1121 static void pnd2_mce_output_error(struct mem_ctl_info *mci, const struct mce *m, in pnd2_mce_output_error() 1372 struct mce *mce = (struct mce *)data; in pnd2_mce_check_error() local 1378 if (!mci || (mce->kflags & MCE_HANDLED_CEC)) in pnd2_mce_check_error() 1387 if ((mce->status & 0xefff) >> 7 != 1) in pnd2_mce_check_error() 1390 if (mce->mcgstatus & MCG_STATUS_MCIP) in pnd2_mce_check_error() 1397 mce->extcpu, type, mce->mcgstatus, mce->bank, mce->status); in pnd2_mce_check_error() 1398 pnd2_mc_printk(mci, KERN_INFO, "TSC %llx ", mce->tsc); in pnd2_mce_check_error() 1399 pnd2_mc_printk(mci, KERN_INFO, "ADDR %llx ", mce->addr); in pnd2_mce_check_error() 1400 pnd2_mc_printk(mci, KERN_INFO, "MISC %llx ", mce->misc); in pnd2_mce_check_error() 1402 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 *));
|
/openbmc/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
|
/openbmc/linux/arch/x86/include/asm/ |
H A D | mce.h | 172 struct mce entry[]; 222 void mce_setup(struct mce *m); 223 void mce_log(struct mce *m); 246 bool mce_is_memory_error(struct mce *m); 247 bool mce_is_correctable(struct mce *m); 248 int mce_usable_address(struct mce *m); 266 DECLARE_PER_CPU(struct mce, injectm); 337 extern bool amd_mce_is_memory_error(struct mce *m); 348 static inline bool amd_mce_is_memory_error(struct mce *m) { return false; }; in amd_mce_is_memory_error()
|
/openbmc/openbmc/meta-openembedded/meta-oe/recipes-support/mcelog/ |
H A D | mce-test_git.bb | 13 SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git;branch=master \ 20 RDEPENDS:${PN} = "mcelog mce-inject dialog bash" 29 install -d ${D}/opt/mce-test 30 cp -rf ${S}/* ${D}/opt/mce-test/
|
H A D | mce-inject_git.bb | 2 DESCRIPTION = "mce-inject allows to inject machine check errors on the \ 7 SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git;branch=master"
|
H A D | mcelog_202.bb | 8 SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http;;branch=master \ 43 RDEPENDS:${PN}-ptest += "make bash mce-inject"
|
/openbmc/linux/tools/testing/selftests/kvm/x86_64/ |
H A D | ucna_injection_test.c | 160 struct kvm_x86_mce mce = {}; in inject_ucna() local 161 mce.status = status; in inject_ucna() 162 mce.mcg_status = 0; in inject_ucna() 168 mce.misc = (MCM_ADDR_PHYS << 6) | 0xc; in inject_ucna() 169 mce.addr = addr; in inject_ucna() 170 mce.bank = UCNA_BANK; in inject_ucna() 172 vcpu_ioctl(vcpu, KVM_X86_SET_MCE, &mce); in inject_ucna()
|
/openbmc/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()
|
/openbmc/openbmc/meta-openembedded/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/ |
H A D | rasdaemon_0.8.0.bb | 20 PACKAGECONFIG ??= "sqlite3 mce aer extlog devlink diskerror" 22 PACKAGECONFIG[mce] = "--enable-mce,--disable-mce"
|
/openbmc/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
|
/openbmc/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 …]
|
/openbmc/linux/drivers/media/rc/keymaps/ |
H A D | Makefile | 44 rc-dvico-mce.o \ 54 rc-fusionhdtv-mce.o \ 62 rc-imon-mce.o \ 105 rc-rc6-mce.o \
|