Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\cpu\mce\core.c Create Date:2022-07-28 08:00:41
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:__mc_scan_banks

Proto:static void __mc_scan_banks(struct mce *m, struct mce *final, unsigned long *toclear, unsigned long *valid_banks, int no_way_out, int *worst)

Type:void

Parameter:

TypeParameterName
struct mce *m
struct mce *final
unsigned long *toclear
unsigned long *valid_banks
intno_way_out
int *worst
1153  mce_banks = this_cpu_ptr(mce_banks_array)
1154  cfg = mca_cfg
1157  When i < Operations with implied preemption/interrupt protection. These* operations can be used without worrying about preemption or interrupt.(mce_num_banks) cycle
1158  __clear_bit - Clears a bit in memory*@nr: the bit to clear*@addr: the address to start counting from* Unlike clear_bit(), this function is non-atomic. If it is called on the same* region of memory concurrently, the effect may be that only one operation
1159  If Not st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from Then Continue
1162  If Not subevents to enable Then Continue
1165  Bank's MCi_MISC MSR = 0
1166  Bank's MCi_ADDR MSR = 0
1167  Machine check bank reporting the error = i
1169  Bank's MCi_STATUS MSR = MSR access wrappers used for error injection
1170  If Not (Bank's MCi_STATUS MSR & valid error ) Then Continue
1177  If Not (Bank's MCi_STATUS MSR & If ser Then Signaled machine check Else uncorrected error ) && Not no_way_out Then Continue
1182  add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE)
1184  severity = mce_severity(m, tolerant, NULL, true)
1190  If ( severity == MCE_KEEP_SEVERITY || severity == MCE_UCNA_SEVERITY ) && Not no_way_out Then Continue
1194  __set_bit - Set a bit in memory*@nr: the bit to set*@addr: the address to start counting from* Unlike set_bit(), this function is non-atomic. If it is called on the same* region of memory concurrently, the effect may be that only one operation* succeeds.
1197  If severity == MCE_NO_SEVERITY Then Continue
1200  Read ADDR and MISC registers.
1203  Error severity = severity
1205  mce_log(m)
1207  If severity > worst Then
1208  final = m
1209  worst = severity
1214  m = final
Caller
NameDescribe
do_machine_checkThe actual machine check handler. This only handles real* exceptions when something got corrupted coming in through int 18.* This is executed in NMI context not subject to normal locking rules. This* implies that most kernel services cannot be safely used