Home
last modified time | relevance | path

Searched full:mce (Results 1 – 25 of 227) sorted by relevance

12345678910

/linux-6.14.4/arch/powerpc/kernel/
Dmce.c10 #define pr_fmt(fmt) "mce: " fmt
25 #include <asm/mce.h>
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()
[all …]
/linux-6.14.4/arch/x86/kernel/cpu/mce/
Dthreshold.c3 * Common corrected MCE threshold handler code:
11 #include <asm/mce.h>
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()
[all …]
Dinternal.h6 #define pr_fmt(fmt) "mce: " fmt
9 #include <asm/mce.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);
[all …]
Ddev-mcelog.c27 * Lockless MCE logging infrastructure.
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()
120 * mce_chrdev: Character device /dev/mcelog to read and clear the MCE log.
161 /* Collect MCE record of previous boot in persistent storage via APEI ERST. */
166 struct mce m; in __mce_read_apei()
168 if (usize < sizeof(struct mce)) in __mce_read_apei()
172 /* Error or no more MCE record */ in __mce_read_apei()
[all …]
Dinject.c10 * The AMD part (from mce_amd_inj.c): a simple MCE injection facility
30 #include <asm/mce.h>
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()
125 /* Update fake mce registers on current CPU. */
126 static void inject_mce(struct mce *m) in inject_mce()
[all …]
Dgenpool.c3 * MCE event pool management in MCE context
15 * printk() is not safe in MCE context. This is a lock-less memory allocator
18 * This memory pool is only to be used to save MCE records in MCE context.
19 * MCE events are rare, so a fixed size memory pool should be enough.
49 * The system has panicked - we'd like to peruse the list of MCE records
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()
109 pr_warn_ratelimited("MCE records pool full!\n"); in mce_gen_pool_add()
Dapei.c3 * Bridge between MCE and APEI
12 * For fatal MCE, save MCE record into persistent storage via ERST, so
13 * that the MCE record can be logged after reboot via ERST.
25 #include <asm/mce.h>
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()
[all …]
Dcore.c54 #include <asm/mce.h>
65 #include <trace/events/mce.h>
76 /* One object for each MCE bank, shared by all CPUs */
116 * MCE errors in a human-readable form.
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()
[all …]
Dp5.c15 #include <asm/mce.h>
44 /* Set up machine check reporting for processors with Intel style MCE: */
53 /* Check for MCE support: */ in intel_p5_mcheck_init()
62 /* Enable MCE: */ in intel_p5_mcheck_init()
Dwinchip.c14 #include <asm/mce.h>
34 lo |= (1<<2); /* Enable EIERRINT (int 18 MCE) */ in winchip_mcheck_init()
35 lo &= ~(1<<4); /* Enable MCE */ in winchip_mcheck_init()
Dseverity.c3 * MCE grading rules.
14 #include <asm/mce.h>
23 * Grade an mce by severity. In general the most severe ones are processed
107 * known AO MCACODs reported via MCE or CMC:
286 static noinstr int error_context(struct mce *m, struct pt_regs *regs) in error_context()
320 static noinstr int mce_severity_amd(struct mce *m, struct pt_regs *regs, char **msg, bool is_excp) in mce_severity_amd()
380 static noinstr int mce_severity_intel(struct mce *m, struct pt_regs *regs, char **msg, bool is_excp) in mce_severity_intel()
413 int noinstr mce_severity(struct mce *m, struct pt_regs *regs, char **msg, bool is_excp) in mce_severity()
/linux-6.14.4/drivers/acpi/nfit/
Dmce.c10 #include <asm/mce.h>
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()
24 /* Verify the address reported in the MCE is valid. */ in nfit_handle_mce()
25 if (!mce_usable_address(mce)) in nfit_handle_mce()
29 * mce->addr contains the physical addr accessed that caused the in nfit_handle_mce()
35 unsigned int align = 1UL << MCI_MISC_ADDR_LSB(mce->misc); in nfit_handle_mce()
45 /* find the spa that covers the mce addr */ 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()
[all …]
/linux-6.14.4/drivers/edac/
Dskx_common.c21 #include <asm/mce.h>
620 const struct mce *m, in skx_mce_output_error()
698 static enum error_source skx_error_source(const struct mce *m) in skx_error_source()
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()
729 if (err_src == ERR_SRC_NOT_MEMORY || !(mce->status & MCI_STATUS_ADDRV)) in skx_mce_check_error()
733 res.mce = mce; in skx_mce_check_error()
734 res.addr = mce->addr & MCI_ADDR_PHYSADDR; 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()
[all …]
Dmce_amd.c13 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
288 static void decode_mc0_mce(struct mce *m) in decode_mc0_mce()
306 pr_emerg(HW_ERR "Corrupted MC0 MCE info?\n"); in decode_mc0_mce()
398 static void decode_mc1_mce(struct mce *m) in decode_mc1_mce()
425 pr_emerg(HW_ERR "Corrupted MC1 MCE info?\n"); in decode_mc1_mce()
544 static void decode_mc2_mce(struct mce *m) in decode_mc2_mce()
552 pr_cont(HW_ERR "Corrupted MC2 MCE info?\n"); in decode_mc2_mce()
555 static void decode_mc3_mce(struct mce *m) in decode_mc3_mce()
[all …]
Digen6_edac.c25 #include <asm/mce.h>
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()
963 edac_dbg(0, "MISC 0x%llx\n", mce->misc); in ecclog_mce_handler()
[all …]
/linux-6.14.4/Documentation/translations/zh_CN/mm/
Dhwpoison.rst143 x86 有 mce-inject, mce-test
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.14.4/arch/x86/include/asm/
Dmce.h5 #include <uapi/asm/mce.h>
144 /* mce.kflags flag bits for logging etc. */
153 * Indicates an MCE which has happened in kernel space but from
161 * Indicates an MCE that happened in kernel space while copying data
169 * This structure contains all data related to the MCE log. Also
179 unsigned recordlen; /* length of struct mce */
180 struct mce entry[];
201 * Vendor-specific fields should not be added to struct mce. Instead, vendors
210 struct mce m;
220 #define to_mce_hw_err(mce) container_of(mce, struct mce_hw_err, m) argument
[all …]
/linux-6.14.4/Documentation/mm/
Dhwpoison.rst157 * Architecture specific MCE injector
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.14.4/tools/testing/selftests/kvm/x86/
Ducna_injection_test.c26 #include "mce.h"
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()
162 * Lowest 6 bits is the recoverable address LSB, i.e., the injected MCE 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.14.4/drivers/media/rc/keymaps/
Drc-winfast.c68 { 0x1a, KEY_MODE}, /* change to MCE mode on Y04G0051 */
69 { 0x3e, KEY_VOLUMEUP }, /* MCE +VOL, on Y04G0033 */
70 { 0x3a, KEY_VOLUMEDOWN }, /* MCE -VOL, on Y04G0033 */
71 { 0x3b, KEY_CHANNELUP }, /* MCE +CH, on Y04G0033 */
72 { 0x3f, KEY_CHANNELDOWN } /* MCE -CH, on Y04G0033 */
Drc-imon-mce.c2 /* rc5-imon-mce.c - Keytable for Windows Media Center RC-6 remotes for use
11 /* mce-mode imon mce remote key table */
111 { 0x800ff40d, KEY_MEDIA }, /* Windows MCE button */
140 MODULE_DESCRIPTION("iMON MCE remote controller keytable");
DMakefile44 rc-dvico-mce.o \
54 rc-fusionhdtv-mce.o \
62 rc-imon-mce.o \
106 rc-rc6-mce.o \
/linux-6.14.4/drivers/acpi/
Dacpi_extlog.c17 #include <asm/mce.h>
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.14.4/drivers/media/rc/
Dmceusb.c10 * two mce drivers were merged into one by Jarod Wilson, with transmit
43 /* MCE constants */
122 /* Misc commands/responses not defined in the MCE remote/transceiver spec */
248 .name = "Conexant Hybrid TV (cx231xx) MCE IR",
253 .name = "Conexant Hybrid TV (cx231xx) MCE IR",
257 .name = "Conexant Hybrid TV (cx231xx) MCE IR no TX",
282 /* Original Microsoft MCE IR Transceiver (often HP-branded) */
305 /* Realtek MCE IR Receiver and card reader */
361 /* Microsoft MCE Infrared Transceiver */
367 /* Formosa aim / Trust MCE Infrared Receiver */
[all …]
/linux-6.14.4/drivers/net/ethernet/marvell/octeontx2/af/
Drvu_nix.c81 struct mce { struct
1058 /* Skip NIXLF check for broadcast MCE entry and bandwidth profile in rvu_nix_blk_aq_enq_inst()
1091 /* Check if index exceeds MCE list length */ in rvu_nix_blk_aq_enq_inst()
1178 memcpy(ctx, &req->mce, sizeof(struct nix_rx_mce_s)); in rvu_nix_blk_aq_enq_inst()
1256 memcpy(&rsp->mce, ctx, in rvu_nix_blk_aq_enq_inst()
3169 int mce, u8 op, u16 pcifunc, int next, in nix_blk_setup_mce() argument
3178 aq_req.qidx = mce; in nix_blk_setup_mce()
3181 aq_req.mce.op = mce_op; in nix_blk_setup_mce()
3182 aq_req.mce.index = index; in nix_blk_setup_mce()
3183 aq_req.mce.eol = eol; in nix_blk_setup_mce()
[all …]

12345678910