函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\cpu\mce\core.c Create Date:2022-07-27 09:01:18
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__mc_scan_banks

函数原型:static void __mc_scan_banks(struct mce *m, struct mce *final, unsigned long *toclear, unsigned long *valid_banks, int no_way_out, int *worst)

返回类型:void

参数:

类型参数名称
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 i小于Operations with implied preemption/interrupt protection. These* operations can be used without worrying about preemption or interrupt.(mce_num_banks)循环
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  如果非st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from则继续下一循环
1162  如果非 subevents to enable 则继续下一循环
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  如果非Bank's MCi_STATUS MSR 按位与valid error 的值则继续下一循环
1177  如果非Bank's MCi_STATUS MSR 按位与如果serSignaled machine check 否则uncorrected error 的值且非no_way_out则继续下一循环
1182  add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE)
1184  severity等于mce_severity(m, tolerant, NULL, true)
1190  如果severity恒等于MCE_KEEP_SEVERITYseverity恒等于MCE_UCNA_SEVERITY的值且非no_way_out则继续下一循环
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  如果severity恒等于MCE_NO_SEVERITY则继续下一循环
1200  Read ADDR and MISC registers.
1203  Error severity 等于severity
1205  mce_log(m)
1207  如果severity大于worst
1208  final等于m
1209  worst等于severity
1214  m等于final
调用者
名称描述
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