| /linux-6.15/arch/powerpc/kernel/ |
| H A D | mce.c | 97 struct machine_check_event *mce; in save_mce_event() local 109 mce->version = MCE_V1; in save_mce_event() 110 mce->srr0 = nip; in save_mce_event() 111 mce->srr1 = regs->msr; in save_mce_event() 112 mce->gpr3 = regs->gpr[3]; in save_mce_event() 113 mce->in_use = 1; in save_mce_event() 114 mce->cpu = get_paca()->paca_index; in save_mce_event() 130 mce_set_error_info(mce, mce_err); in save_mce_event() 168 machine_check_ue_event(mce); in save_mce_event() 205 if (mce) in get_mce_event() [all …]
|
| /linux-6.15/arch/x86/kernel/cpu/mce/ |
| H A D | internal.h | 49 bool intel_filter_mce(struct mce *m); 50 bool intel_mce_usable_address(struct mce *m); 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); 125 static inline int apei_write_mce(struct mce *m) in apei_write_mce() 149 static inline bool mce_cmp(struct mce *m1, struct mce *m2) in mce_cmp() 263 extern bool filter_mce(struct mce *m); 264 void mce_prep_record_common(struct mce *m); 268 extern bool amd_filter_mce(struct mce *m); [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() 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() 137 mce_handle_storm(mce->bank, false); in mce_track_storm() 138 cmci_storm_end(mce->bank); in mce_track_storm() 143 mce_handle_storm(mce->bank, true); 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() 197 *ubuf += sizeof(struct mce); in __mce_read_apei() 226 struct mce *m = &mcelog->entry[i]; in mce_chrdev_read() 289 struct mce m; in mce_chrdev_write() 301 usize = sizeof(struct mce); in mce_chrdev_write() [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() 117 memset(m, 0, sizeof(struct mce)); in setup_inj_struct() 126 static void inject_mce(struct mce *m) in inject_mce() 138 memcpy(i, m, sizeof(struct mce)); in inject_mce() 296 struct mce *m = (struct mce *)data; in mce_inject_raise() 403 struct mce *m = (struct mce *)data; in inj_extcpu_set() 475 struct mce m = *(struct mce *)info; in prepare_msrs() [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 | 142 struct mce *m = &err->m; in mce_prep_record() 177 struct mce *m = &err->m; in __print_mce() 226 struct mce *m = &err->m; in print_mce() 295 struct mce *m = &err->m; in mce_panic() 305 struct mce *m = &err->m; in mce_panic() 461 struct mce *m; in mce_gather_info() 635 struct mce *mce = (struct mce *)data; in uc_decode_notifier() local 638 if (!mce || !mce_usable_address(mce)) in uc_decode_notifier() 736 struct mce *m; in machine_check_poll() 1063 struct mce *m = NULL; in mce_reign() [all …]
|
| H A D | genpool.c | 78 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 D | Makefile | 9 mce-inject-y := inject.o 10 obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o
|
| /linux-6.15/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()
|
| /linux-6.15/drivers/edac/ |
| H A D | ie31200_edac.c | 348 static void __ie31200_check(struct mem_ctl_info *mci, struct mce *mce) in __ie31200_check() argument 352 info.erraddr = mce ? mce->addr : 0; in __ie31200_check() 511 static void mce_check(struct mce *mce) in mce_check() argument 521 __ie31200_check(priv->mci, mce); in mce_check() 527 struct mce *mce = (struct mce *)data; in mce_handler() local 543 mce->extcpu, type, mce->mcgstatus, in mce_handler() 544 mce->bank, mce->status); in mce_handler() 549 mce->cpuvendor, mce->cpuid, mce->time, in mce_handler() 550 mce->socketid, mce->apicid); in mce_handler() 552 mce_check(mce); in mce_handler() [all …]
|
| H A D | skx_common.c | 620 const struct mce *m, in skx_mce_output_error() 717 struct mce *mce = (struct mce *)data; in skx_mce_check_error() local 723 if (mce->kflags & MCE_HANDLED_CEC) in skx_mce_check_error() 726 err_src = skx_error_source(mce); in skx_mce_check_error() 733 res.mce = mce; in skx_mce_check_error() 736 pr_err("Invalid address 0x%llx in IA32_MC%d_ADDR\n", mce->addr, mce->bank); in skx_mce_check_error() 761 mce->mcgstatus, mce->bank, mce->status); in skx_mce_check_error() 767 "%u APIC 0x%x\n", mce->cpuvendor, mce->cpuid, in skx_mce_check_error() 768 mce->time, mce->socketid, mce->apicid); in skx_mce_check_error() 772 mce->kflags |= MCE_HANDLED_EDAC; 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 288 static void decode_mc0_mce(struct mce *m) in decode_mc0_mce() 398 static void decode_mc1_mce(struct mce *m) in decode_mc1_mce() 544 static void decode_mc2_mce(struct mce *m) in decode_mc2_mce() 555 static void decode_mc3_mce(struct mce *m) in decode_mc3_mce() 584 static void decode_mc4_mce(struct mce *m) in decode_mc4_mce() 642 static void decode_mc5_mce(struct mce *m) in decode_mc5_mce() 674 static void decode_mc6_mce(struct mce *m) in decode_mc6_mce() 732 static void decode_smca_error(struct mce *m) in decode_smca_error() [all …]
|
| H A D | igen6_edac.c | 939 struct mce *mce = (struct mce *)data; in ecclog_mce_handler() local 942 if (mce->kflags & MCE_HANDLED_CEC) in ecclog_mce_handler() 950 if ((mce->status & 0xefff) >> 7 != 1) in ecclog_mce_handler() 953 if (mce->mcgstatus & MCG_STATUS_MCIP) in ecclog_mce_handler() 959 mce->extcpu, type, mce->mcgstatus, in ecclog_mce_handler() 960 mce->bank, mce->status); in ecclog_mce_handler() 961 edac_dbg(0, "TSC 0x%llx\n", mce->tsc); in ecclog_mce_handler() 962 edac_dbg(0, "ADDR 0x%llx\n", mce->addr); in ecclog_mce_handler() 965 mce->cpuvendor, mce->cpuid, mce->time, in ecclog_mce_handler() 966 mce->socketid, mce->apicid); in ecclog_mce_handler() [all …]
|
| H A D | pnd2_edac.c | 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() 1399 mce->cpuvendor, mce->cpuid, mce->time, mce->socketid, mce->apicid); in pnd2_mce_check_error() 1401 pnd2_mce_output_error(mci, mce, &daddr); in pnd2_mce_check_error() 1404 mce->kflags |= MCE_HANDLED_EDAC; 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 *));
|
| /linux-6.15/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-6.15/drivers/cxl/core/ |
| H A D | mce.c | 17 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-6.15/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); 299 DECLARE_PER_CPU(struct mce, injectm); 372 extern bool amd_mce_is_memory_error(struct mce *m); 383 static inline bool amd_mce_is_memory_error(struct mce *m) { return false; }; in amd_mce_is_memory_error()
|
| /linux-6.15/tools/testing/selftests/kvm/x86/ |
| 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-6.15/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-6.15/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-6.15/drivers/net/ethernet/marvell/octeontx2/af/ |
| H A D | rvu_nix.c | 3202 struct mce *mce; in nix_delete_mcast_mce_list() local 3225 struct mce *mce, *prev_mce; in nix_update_ingress_mce_list_hw() local 3257 mce->rq_rss_index, mce->dest_type, in nix_update_ingress_mce_list_hw() 3275 struct mce *mce, *prev_mce; in nix_update_egress_mce_list_hw() local 3323 struct mce *mce; in nix_del_mce_list_entry() local 3362 struct mce *mce; in nix_add_mce_list_entry() local 3402 struct mce *mce, *tail = NULL; in nix_update_mce_list_entry() local 3429 mce = kzalloc(sizeof(*mce), GFP_KERNEL); in nix_update_mce_list_entry() 3449 struct mce *mce; in nix_update_mce_list() local 5206 struct mce *mce; in nix_mcast_update_mce_entry() local [all …]
|
| /linux-6.15/Documentation/devicetree/bindings/media/ |
| H A D | rc.yaml | 62 - rc-dvico-mce 73 - rc-fusionhdtv-mce 81 - rc-imon-mce 126 - rc-rc6-mce
|
| /linux-6.15/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 \
|